데이터 스터디/SAS

SAS - 변수 속성 할당

케이와이엠 2023. 3. 22. 12:22

1. LABEL 명령문

LABEL 변수1 = '라벨이름' 변수2='라벨이름' ....;

 

2. FORMAT 명령문

FORMAT 변수이름 출력형식

 

이때, 출력형식 종류 !

$4. (문자형 4글자) , 12. (소수0번째 자리 까지 나타내 = 정수 나타내), 12.2 (소수 두번째 자리까지 나타내), COMMA12.2(천번째에 쉼표 사용하고 소수2번째 자리까지 나타내기. 총 12글자까지 읽을 수 있어) DOLLAR12.2(달러랑 쉼표 사용하기) YYMMDD10.(1961-01-01)

 

3. RENAME

원래 변수명 = 바꾸고자 하는 새로운 변수명

ex) total = sum => total 변수이름을 sum으로 변경 !

 

4. TITLE문 FOORNOTE문

 

 

5. RETAIN문

바로 직전의 data 단계에서 숳ㅇ된 값을 유지시켜주는 역할

ex1)

 

retain으로 초기값을 0으로 지정해놔.

그리고 변수sumx에 x를 차곡차곡 쌓아

put 명령문은 로그창에 보여주게 하는 코드 !

 

함축 retain : 변수 + 수식

여기서 변수는 반드시 숫자형, 초기값으로 0을 가진다.

 

 

 

 

ex2)

 
 
 

이건 다른 데이터를 참고해서 만들지 않고 하나의 데이터셋 안에서 진행되는 거!

 

 

 

 
 

input 랑 retain 순서는 바껴도 괜찮음!

 

 

 

 

 

 

6. MISSING 문

7. OPTION 문 : 시스템 옵션 설정하기


[DATA STEP 예제 1]

데이터 입력하기

오류 ! -> 글자 수 지정해주는거니까 cards에 숫자 넣을 때 간격 맞춰서 넣어야함
맞춰서 넣으면 성공 ! 참고로 이건 formatted input의 경우다. 입력포멧이 (정수부분. 소수부분) 이다.

 

또 다른 방법은 column input으로 해주기

 

INPUT @입력시작위치 변수명​ 입력포맷(정수부분.소수점부분) => 고정 포맷도 가능! => formatted input임
 

그 다음에 format 지정해줘서 출력값처럼 나오게 하기

format을 cards 뒤에 두면 결과가 안나옴
cards 전에 format 지정해주기! 근데 이때 주의할 점!!  comma?. 해서 그 숫자에 쉼표가 더해질 것이기 때문에 5+1 인 comma6.을 해줘야함!!
 

 

 

 

 

물론 ! proc step 에서 format 넣어줘도 괜찮

 

 

 

 

 

 

 

 


DATA STEP 예제 2]

[성 + 이름]의 구성을 [이름 + 성]으로 변환하기

 
 
 

원래는 성+이름 순서로 되어 있음

여기에 substr , catx 함수 사용해서 순서를 바꾸기

 

 

 

 

여기에 new1, new2 에 각각 성, 이름 지정

그 다음에 catx로 구분자는 ''공백으로 해서 합쳐주고

keep은 new변수만 결과값에 나오게끔 만들어줌

 

 


DATA STEP 예제 3]

Firstname 이 M으로 시작하는 경우만 고르자

이때, WHERE 특수연산자 사용 !

 

 

 

BB데이터셋 만들어줌

 

 

 

 

WHERE절 사용해서 두번째에 해당하는 firstname 중 M으로 시작하는 이름을 추출함

'%,M%' 로 표현하기