全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2015 4
2014-04-15
本人小白,最近开始研究SAS。我现在对数据做了差分,想提取符合条件的,具体如下
x1  dif(x1)
1    .
2    1
4    2
5    1
7    2
dif(x1)是对X1做了差分,如果dif(x1)=1,那么提取本行和上一行的数据,请问这个怎么实现
二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-15 17:06:18
data a;
input x1 @@;
dif=dif(x1);
obs1=_n_;
if dif=1 then obs2=obs1-1;
cards;
1 2 4 5 7
;

proc sql noprint;
select obs1 into: obs1 separated by ','
from a
where dif=1;
select obs2 into: obs2 separated by ','
from a
where dif=1;
quit;

data wanted;
set a;
if _n_ in (&obs1,&obs2);
keep x1;
run;
二维码

扫码加我 拉你入群

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

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

2014-4-16 15:39:52
data c1;
        input x1 ;
        dif=dif(x1);
        obs+1;
        datalines;
        1
        2
        4
        5
        7
        ;
run;
proc sort data=c1 ;
        by descending obs;
run;
data c1;
        set c1;
        dif1=lag(dif);
run;
proc sort data=c1;
        by obs;
run;
data c1;
        set c1;
        where dif=1 or dif1=1;
        drop obs dif1;
run;
二维码

扫码加我 拉你入群

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

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

2014-4-22 07:10:13
huangpengfei 发表于 2014-4-16 15:39
data c1;
        input x1 ;
        dif=dif(x1);
3q a lot .非常有帮助。
二维码

扫码加我 拉你入群

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

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

2014-4-22 07:10:55
wwang111 发表于 2014-4-15 17:06
data a;
input x1 @@;
dif=dif(x1);
学习了,真是感谢,有人支持就有学习的动力~~~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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