全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3888 6
2011-05-31
请教下各位:
假如我有如下数据:
data raw;
input subjid $ visit value1 value2;
cards;
001 1 100 110
001 2 101 111
001 3 102 112
001 4 103 .
002 1 100 110
002 2 101 111
002 3 102 .
003 1 100 110
003 2 101 111
003 3 102 112
003 4 103 113
run;
如果value2缺失,用上一个visit的值填补。例如:subjid=001,当visit=4时,value2=.,现在要使value2=112(上一个visit的值),该如何实现?谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-5-31 16:08:54
用retain来试试
二维码

扫码加我 拉你入群

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

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

2011-5-31 16:19:40
data b;
set raw;
by subjid;
retain a ;
if first.subjid then a=.;
if value2^=. then a=value2;
run;
二维码

扫码加我 拉你入群

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

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

2011-5-31 16:23:01
Thanks!
3# honghejing
二维码

扫码加我 拉你入群

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

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

2011-5-31 16:28:21
data raw;
input subjid $ visit value1 value2;
retain v;
if first.value2 then v=value2;else
if value2=. then value2=v;else
v=value2;
drop v;
cards;
001 1 100 110
001 2 101 111
001 3 102 112
001 4 103 .
002 1 100 110
002 2 101 111
002 3 102 .
003 1 100 110
003 2 101 111
003 3 102 112
003 4 103 113
run;
二维码

扫码加我 拉你入群

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

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

2011-5-31 19:28:57
Thank you!
5# zane_gao
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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