全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1146 3
2019-06-24
悬赏 40 个论坛币 未解决
复制代码
如何把每个个体(id)visit>1的x的最大值取出,放在visit=1的后面,结果如下:
id visit x fl
1 1 1 4
1 2 1 .
1 3 3 .
1 4 4 .
2 1 1 3
2 2 3 .
3 1 2 3
3 2 2 .
3 3 3 .



如能用data步实现最后,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2019-6-25 11:04:56
data bbb;set aaa;run;
proc sort data=bbb;by id visit;
run;
data c;set bbb;by id ;
if last.id;
run;
data c;set c;
if visit=1 then delete;
run;
data c;set c;
visitpass=1;
run;/*选出visit>1的个体,用visitpass标记*/
proc sort data=bbb;by id x;
run;
data d;set bbb;by id x;
if last.id;
run;
data d;set d;fl=x;run;/*选出x最大的个体*/
data cd;merge c d;by id;
run;
data cd;set cd;
if visitpass=. then delete;
run;
data cdd;set cd;keep id fl;run;
data eee;set bbb;by id ;
if first.id;
run;
data ccc;merge eee cdd;by id ;
run;
data ddd;merge ccc aaa;by id visit;run;
二维码

扫码加我 拉你入群

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

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

2019-7-4 22:49:53
proc sort data=aaa(where=(visit>1)) out=bbb;by id visit x;run;
data bbb;
set bbb;
by id visit x;
if last.id;
visit=1;
rename x=fl;
run;
proc sort data=aaa;by id visit;run;
data result;
merge aaa(in=a) bbb(in=b);
by id visit;
if a;
run;
二维码

扫码加我 拉你入群

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

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

2019-7-9 16:36:59
复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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