로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > SAS Tech & Tip > SAS Programming 활용하기
[SAS 프로그래밍] RETAIN 활용하기 1 2017.09.20
MYSAS 시샵 92 0
http://www.mysas.co.kr/sas_tiptech/a_question.asp?b_no=7443&cmd=content&bd_no=5

[SAS 프로그래밍] RETAIN 활용하기 1

 

안녕하세요^^

이번 시간에는 데이터 핸들링에서 종종 사용되는 함수인 retain에 대해 알아보겠습니다.

 


1. 초기값 지정

2. 변수의 이전 값과 현재 값을 비교하는 연산 가능 (중복값 제거 가능)

3. 변수 순서 지정

 


SAS내에서는 특별한 조건이 주어지지 않으면 변수는 결측값(숫자변수의 경우 온점(.), 문자변수의 경우는 공백( ))을 기본값으로 입력합니다. 그러나 기본값이 아닌 바로 전 단계에서의 값을 유지하여 사용하고자 할 때 Retain 함수를 사용할 수 있습니다.

 

Retain함수를 활용하면, 각 변수의 누적 합, 누적 평균, 누적 퍼센트 등도 구할 수 있으므로 유용하게 사용됩니다.


또한 Retain을 활용하면 중복값을 제거하거나 변수의 순서도 지정할 수 있습니다.

 



예제를 통해서 알아보겠습니다 


예제로 사용할 데이터는 SAS내의 데이터 [SASHELP]-[ORSALES]를 사용하겠습니다.

 

 

 

 

Where 조건문과 Keep문을 통해 사용할 변수들과 2002년 자료를 불러왔습니다.

 

 

 

 

먼저 중복을 제거하고 싶은 변수를 기준으로 정렬을 해줍니다.

예제에서는 제품 종류(product category)를 기준으로 중복을 제거하고자 합니다.


 

 

 

다음으로, product라는 RETAIN변수를 생성해 줍니다.


IF 조건문을 사용하여 기존의 product_category값과 생성된 product값을 비교하여 같으면 삭제하도록 합니다.


조건문 이후에

Product = product_category


를 사용하여 기존의 product_category 값들을 product에 넣어주게 되면

product_category 의 맨 처음 값은 삭제되지 않고 두 번째 값들부터 삭제가 됩니다.



, 아래와 같이 product_category별로 한 가지 관측값만 남고 중복되는 값은 삭제된 것을 확인 할 수 있습니다.

 

 

 

 

 

 

 

이상으로 retain을 활용하여 중복값을 제거하는 방법에 대해 알아보았습니다.

 


이어서 다음 시간에는 retain을 활용하여 전체 누적 합을 구하고 변수의 순서를 지정하는 내용에 대해 알아보겠습니다.


 


감사합니다. ^^


 

 

 
 
 
 
 [SAS 프로그래밍] RETAIN 활용하기 2
 [SAS 프로그래밍] ODS Statement