作者tew (咖啡王子)
站內Statistics
標題Re: [程式] Stata的時間資料處理問題→SAS版本
時間Thu Feb 11 14:36:15 2010
※ 引述《wlsherica (Mon_tresor)》之銘言:
: 前文恕刪,先謝謝原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 a;
set a;by id;
retain Endtime ;
if event=1 then endtime=lag(time);
else endtime=.;
if first.id then endtime=.;
run;
proc sort data=a;by id 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: 114.44.204.168
推 wlsherica:(筆記) 謝謝!! 02/11 14:41
→ ASD332:幫補 retain 上面的 by descending id ; 02/11 16:07