全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3834 4
2008-04-24

比如,下面的数据库

 id     v_n   a1
1001  1      .
1001  2      .          
1001  3      .          
1001  4     Y   
1002  1      .
1002  2      .  
1002  3      Y

如果a1='Y',则其上一行(比如本例中的第3行和第6行)a1也等于'Y'

在SAS中如何编程实现?

二维码

扫码加我 拉你入群

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

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

全部回复
2008-4-25 09:59:00
有没有高人指点啊?先谢谢啦!
二维码

扫码加我 拉你入群

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

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

2008-4-25 12:02:00

答案有点罗嗦,但能达到效果!不知道能不能加分阿!~

data a;
input id     v_n   a1 $;
n=_n_;
cards;
1001  1      .
1001  2      .          
1001  3      .          
1001  4     Y   
1002  1      .
1002  2      .  
1002  3      Y
;
run;
proc sort data=a;
by descending n ;
run;

data b;
set a;
laga1=lag(a1);
if a1="Y" then laga1="Y";
run;

proc sort data=b;
by n;
run;

data result;
set b;
drop n a1;
rename laga1=a1;
run;

二维码

扫码加我 拉你入群

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

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

2008-4-25 16:29:00
又学了一招
二维码

扫码加我 拉你入群

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

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

2008-4-29 17:21:00
应该只需要将数据集按相反的标准进行排序后取滞后值就可以了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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