Economics & Deeplearning

데이타 변환에 관해 문의드립니다. 본문

SAS/SAS 질문과 답변

데이타 변환에 관해 문의드립니다.

이슈카 2016. 2. 21. 12:55

안녕하세요.

SAS데이타셋을 변경해야 할 상황인데 코딩을 어떻게 해야 하는지 감이 안잡힙니다.

도움 주시면 정말 감사하겠습니다.

 

일단 원래의 데이타파일은 다음과 같이 구성되어 있습니다.

 

hid   pid01  amt01  pid02  amt02  pid03  amt03  hasset

1      1001   100                                             1000

2      2001    200     2002   300     2003    400      2000

3      3002    500     3003   600                          3000

4                                                                 4000

5     5001    700       5003  800                          5000

 

상기 데이타의 내용은 hid가 가구번호이고 가구원이 최대 3명이라고 할 때

pid01은 특정항목에 지출한 가구원번호이고 mat01은 그 금액인데

이 특정항목을 지출한 가구원의 수는 0명에서 3명까지 불규칙하며

지출이 있는 첫번째 가구원번호과 pid01에 들어있습니다. 

제가 원하는 바는 가구원을 기준으로 다음과 같이 자료를 변환하는 것입니다.

 

hid   pid    amt    hasset

1     1001   100     1000

2     2001   200     2000

2     2002   300     2000

2     2003   400     2000

3    3002    500     3000

3    3003    600     3000

5    5001    700     5000

5    5003    800     5000

 

자료를 변환할 수 있는 코딩을 알려주시면 감사하겠습니다. 

감사합니다..^^

================================================================================

data temp;
infile cards missover dlm=',';
input hid pid01 amt01 pid02 amt02 pid03 amt03 hasset;
cards;
1,1001,100, , , , , 1000
2,2001,200,2002,300,2003,400,2000
3,3002,500,3003,600, , ,3000
4, , , , , , ,4000
5,5001,700,5003,800, , ,5000
;
run;
data temp1;
set temp;
pid=pid01;amt=amt01;output;
pid=pid02;amt=amt02;output;
pid=pid03;amt=amt03;output;
keep hid pid amt hasset;
run;

data temp2;
set temp1;
if pid=. and amt=. then delete;
run;

Comments