BookmarkSubscribeRSS Feed

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

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 2,095

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

 

 

 

 

안녕하세요^^

 

오늘은 지난 시간에 이어 retain 함수를 활용하여 전체 누적 계산을 하는 방법과변수의 순서를 지정하는 내용에 대해 알아보겠습니다.

 

 

1. 초기값 지정

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

3. 변수 순서 지정

 

 

첫 번째로, 원하는 변수값의 누적 합을 구하는 내용을 예제를 통해 설명하겠습니다.

 

예제로 사용된 데이터는 [SASHELP]-[ORSALES]입니다.

 

다운로드 (67).png

 

다운로드 (68).png

 

우선 ORSALES에서 사용할 변수들의 2002년도 자료만 추출하여 retain_1이라는 데이터셋을 만들었습니다.

 

다운로드 (69).png

 

 

1) 전체 누적 합

 

Retain문을 사용하여 누적한 값을 저장할 새로운 변수와 초기값을 설정해 줍니다.

다음으로

cumulative_quantity + quantity

 

 같이 쓰게 되면 번째 관측값에서는 cumulative_quantity 지정한 초기값 0 quantity 값이 더해져서 cumulative_quantity 저장되게 되고

 

 번째 관측값부터는 바로 위에서 계산된 cumulative_quantity값에 quantity 누적하여 더한  cumulative_quantity 저장합니다.

 

 

2) 그룹별 누적 횟수

 

만약그룹 별로 누적합을 구하고 싶을 땐

미리 PROC SORT 프로시저를 사용하여 그룹변수로 정렬을 해 준 후

DATA 프로시저에서도 BY문을 사용하여 그룹변수를 지정해주어야 합니다.

 

 IF first. product_category THEN total_quantity=0

 

quantity_num+1;

 

 

그 이후, 위와 같이 조건문을 써주게 되면 각 product_category 그룹 별로 total_quantity 초기값을 0으로 지정하여 그룹별 합을 구할  있게 됩니다.

 

3) 누적합으로 구한 quantity 와 profit 값으로 총 누적 평균을 구해보았습니다.

 

 

결과는 아래와 같이 나오게 됩니다.

 

다운로드 (70).png

 

 

다운로드 (71).png

 

 

두 번째로 retain함수를 사용하여 변수 순서를 지정하는 방법을 알아보겠습니다.

 

예제로 사용된 데이터는 [SASHELP]-[CLASS] 입니다.

 

 

다운로드 (72).png   다운로드 (73).png

 

 

Class 데이터에서 10개의 관측치만 가져왔을 때의 기존 변수 순서는 name – sex – age – height – weight 임을 알 수 있습니다.

 

다운로드 (74).png   다운로드 (75).png

 

retain문을 사용하고 원하는 변수의 순서대로 변수명을 써 준다음, 불러올 데이터 셋을 지정해 주면 새로운 데이터 셋 retain_reorder에는 지정한 순서대로 name – age – sex – weight – height 순으로 출력이 되는 것을 알 수 있습니다.

 

 

한 가지 주의할 점은, retain문을 먼저 쓰고 set문을 써서 데이터를 불러와야 하는 부분입니다.

 

 

 

이상으로 retain 함수를 활용하여 누적 계산과 변수 순서를 지정하는 방법에 대해 알아보았습니다.

 

감사합니다.^^

 

Version history
Last update:
‎06-17-2020 06:16 AM
Updated by:
Contributors

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Labels
Article Tags