▶ retain
sas는 변수간의 계산은 강력하나 data step의 가장 약한 기능 중 하나라고 볼 수 있는게 변수내 계산입니다.
retain 문은 이런 sas의 단점을 보완하는 명령문이라고 생각하시면 됩니다.
data a1;
input x @@;
cards;
1 2 3 4 5
;
data a1; set a1;
retain sumx 0;
sumx=sumx+x;
run;
코딩을 보시면 retain sumx 0 은 sumx에 초기값을 0으로 지정해주고 sumx에 x값을 누적하는 값입니다.
그리고 이건 retain문의 정식적인 활용은 아니지만 변수가 여러개 일때 뒤에 있는 변수 중 앞쪽에 보이게끔 하기 위해서도 사용가능 합니다.
예를 들어 보여드리면 다음과 같은 데이터 셋이 있다고 합시다.
data a;
input a b c d e f g h i j k l m n id $;
cards;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 khd
;
run;
변수가 많기 때문에 k까지의 변수만 화면에 보이는 것을 알 수 있습니다. 뒷부분이 보이지 않아서 스크롤바를 이용해야 뒷부분의 정보를 볼 수 있는데요.
제가 확인해보고 싶은 변수는 id를 맨 앞부분에 놓고 정보를 확인해보고 싶습니다.
이 경우 다음과 같이 retain문을 쓰는 경우 id가 맨 앞에 위치한 것을 볼 수 있습니다.
간단하고 별거 아닌것 같지만 실제로 데이터양이 많고 변수가 많을 경우에 retain문이 매우 유용하게 사용됩니다.
data b;
retain id ;
set a;
run;
'IT > SQL' 카테고리의 다른 글
[SAS] proc transpose (0) | 2017.03.23 |
---|---|
[SAS] proc sort (0) | 2017.03.23 |
[SAS] proc compare (0) | 2017.03.23 |
[SAS] Format 문 / Informat 문 (0) | 2017.03.23 |
[SAS] do ~ end, stop 명령문 (0) | 2017.03.23 |
[SAS] If ~ then / else (0) | 2017.03.23 |
[SAS]Update와 merge 비교 (0) | 2017.03.23 |