推 hannahluis:感謝眾位大大提點! 02/11 22:58
前文恕刪,先謝謝原po的題目讓我有機會練習如何在SAS環境操作這樣的問題。
以下是我跑的SAS程式,參考t大與k大的說明,使用sort以及merge
不曉得有沒有更精簡的寫法,請大家多多指教!
data a;
input id time event;
cards;
1 2007 1
1 2008 0
1 2009 1
1 2010 1
2 2007 0
2 2008 1
2 2009 0
2 2010 1
;
run;
proc sort data=a;
by descending id descending time;
run;
data a1;
set a;
if event=0 then delete;
endtime=lag(time);
run;
proc sort data=a;
by id time;
run;
proc sort data=a1;
by id time;
run;
data final;
merge a a1;
by id time;
run;
proc sort data=final;
by id time;
run;
不過遇到一個問題,就是第一個ID的最後一筆time會抓到下面的時間
我後來用last.id 去掉了~"~
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.180