作者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
1F:推 wlsherica:(笔记) 谢谢!! 02/11 14:41
2F:→ ASD332:帮补 retain 上面的 by descending id ; 02/11 16:07