全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1315 7
2019-04-24
想求这样的最小值 (lowest value previously recorded),比如,
当前是在001这个人的第五条记录 (Day 5),要求的是前四条(Day 1,day2,day3,day4) value的最小值;
如果是在这个人的第六条,就是求前五条的最小值。

请问怎么实现??


我简单dummy了点数据,用来测试

data raw;
        subject='001';visit='Day 1';date='2019-02-13';value=0;output;
        subject='001';visit='Day 2';date='2019-02-14';value=1;output;
        subject='001';visit='Day 3';date='2019-02-15';value=.;output;
        subject='001';visit='Day 4';date='2019-02-16';value=12;output;
        subject='001';visit='Day 5';date='2019-02-17';value=.;output;
        subject='001';visit='Unscheduled';date='2019-02-18';value=2;output;
        subject='001';visit='Day 3';date='2019-02-15';value=5;output;
        subject='001';visit='Day 4';date='2019-02-18';value=12;output;
run;
proc sort data= raw ;
        by subject date;
run;


求大神们指点,谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2019-4-25 07:53:22
这个是否要先建一个变量,来确定不同的人的观测次数,然后再选出符合要求的数据?
二维码

扫码加我 拉你入群

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

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

2019-4-25 09:33:36
复制代码
二维码

扫码加我 拉你入群

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

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

2019-4-25 18:09:07
8112mmw 发表于 2019-4-25 07:53
这个是否要先建一个变量,来确定不同的人的观测次数,然后再选出符合要求的数据?
我一开始也是想这么求,先求出每个人的总观测数N,然后用lag函数,lag1,lag2,..., lag(n-1),
后来卡在了怎么把lagn 套在循环里,

就比如,
array a  a1-a40;
do i= 1 to (N-1);
a(i)=lagi(value);  /*这里面lagn 的n 应该是下角标吧*/
end;
二维码

扫码加我 拉你入群

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

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

2019-4-25 18:10:12
孤单的我们 发表于 2019-4-25 09:33
好巧妙,谢谢大神!!!
二维码

扫码加我 拉你入群

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

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

2019-4-25 18:19:35
孤单的我们 发表于 2019-4-25 09:33
大神啊,

话说怎么把lagn 套在循环里呀?

就比如,
N 是每人的总观测数,

array a  a1-a40; (个数先往多了写)
do i= 1 to (N-1);
a(i)=lagi (value);  /*这里面lagi 就是 lagn 的n (应该是下角标吧)*/
end;

这种的会报错,不知道怎么处理?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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