全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
651 1
2022-11-07
大神们,求救,

前四行是现有数据,现在想做出最后的那列 want,也就是 当wchg 小于等于10 时,保留第一行的vsstresn 的值,当wchg大于10时,保留本行的vsstresn,

usubjid

ecstdtc

vsstresn

wchg

want

101-001

11/1/2022

90

0

90

101-001

11/2/2022

91

1.1

90

101-001

11/3/2022

92

1.1

90

101-001

11/4/2022

93

1.1

90

101-001

11/5/2022

120

29

120

101-001

11/6/2022

121

0.83

120

101-001

11/7/2022

122

0.83

120

101-001

11/8/2022

140

14.8

140

101-001

11/9/2022

141

0.7

140



如何能做出 want 那列的值,

用retain 语句 没想明白,求指点!!

dummy 的code 如下:

复制代码




二维码

扫码加我 拉你入群

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

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

全部回复
2022-11-9 16:51:38
增加几个辅助列x,y,cnt

data a;
set a;
if wchg<=10 then x=0;
else x=1;
run;

data a;
set a;
by usubjid ;
y=lag(x);
if first.usubjid then cnt=0;
if x=y then do;
   retain cnt;
end;
else cnt+1;
run;

data a;
set a;
format want best12.;
by usubjid cnt;
if first.cnt then want=vsstresn;
retain want;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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