楼主: firstknife
3868 4

高手指教: SAS数据管理 关于上一行取值 [推广有奖]

  • 0关注
  • 2粉丝

教授

34%

还不是VIP/贵宾

-

威望
0
论坛币
22014 个
通用积分
112.4724
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
212488 点
帖子
575
精华
0
在线时间
2108 小时
注册时间
2006-12-30
最后登录
2025-12-24

楼主
firstknife 发表于 2008-4-24 15:59:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

比如,下面的数据库

 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中如何编程实现?

二维码

扫码加我 拉你入群

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

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

关键词:数据管理 数据库 高手 SAS 指教 数据管理

回帖推荐

luijb 发表于3楼  查看完整内容

答案有点罗嗦,但能达到效果!不知道能不能加分阿!~data a;input id     v_n   a1 $;n=_n_;cards;1001  1      .1001  2      .           1001  3      .           1001  4   ...

本帖被以下文库推荐

沙发
firstknife 发表于 2008-4-25 09:59:00
有没有高人指点啊?先谢谢啦!

藤椅
luijb 在职认证  发表于 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;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

西格玛临床统计服务工作室http://www.sigma-stat.com/,luijb@163.com

板凳
edragon1983 发表于 2008-4-25 16:29:00
又学了一招

报纸
savagexu 发表于 2008-4-29 17:21:00
应该只需要将数据集按相反的标准进行排序后取滞后值就可以了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 03:41