데이타 변환에 관해 문의드립니다.
안녕하세요.
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;