▶ 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;

 

 

 

 

 

 

 

 

 

 

출처: http://blog.naver.com/hur_yoon/

'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

+ Recent posts