全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2490 6
2011-08-31
悬赏 10 个论坛币 已解决
有如下随访数据,ID代表对象id号,follow代表随访次,sb=2代表发病,sb=1代表没有发病
IDfollowsbsbday
1001112010-3-1
1002112010-3-1
1002212010-6-1
1003112010-3-1
1003212010-6-1
1003322010-9-1
1004112010-3-1
1004222010-6-1
1004322010-9-1
1004422010-12-1
先在要求整理数据成如下:如果随访没有发病的(SB=1),则取最后一次随访记录的数据,如果随访发病的(SB=2),则取首次发病数据,整理好数据如下,SAS程序怎样实现?

IDfollowsbsbday
1001112010-3-1
1002212010-6-1
1003322010-9-1
1004222010-6-1

最佳答案

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-8-31 15:11:30
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-31 16:40:25
为啥子不能删除呢。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-31 16:41:07
谢谢guoluo,已经解决。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-31 16:46:25
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-31 22:43:21
事实上楼上的程序更严谨,谢谢了,请看以下程序就明白。
假如某对象已经发病,但是继续是否,随访的又没有再发病,3楼程序会出错,导致多选,楼上不会。

data original;
input ID follow sb sbday;
informat sbday yymmdd.;
format sbday yymmdd10.;
cards;
1001 1 1 2010-3-1
1002 1 1 2010-3-1
1002 2 1 2010-6-1
1003 1 1 2010-3-1
1003 2 1 2010-6-1
1003 3 2 2010-9-1
1003 4 1 2010-11-1
1004 1 1 2010-3-1
1004 2 2 2010-6-1
1004 3 2 2010-9-1
1004 4 2 2010-12-1
;
run;

proc sort;by id sb;run;

data final1;
set original;
by id sb;
if first.sb and sb=2 then output;
else if last.id and sb ne 2 then output;
run;

proc print data=final1; run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群