楼主: handsome0611
2069 4

提取数据遇到问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

57%

还不是VIP/贵宾

-

威望
0
论坛币
569 个
通用积分
2.8500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1218 点
帖子
56
精华
0
在线时间
220 小时
注册时间
2010-2-15
最后登录
2025-3-19

楼主
handsome0611 发表于 2014-4-15 16:10:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
本人小白,最近开始研究SAS。我现在对数据做了差分,想提取符合条件的,具体如下
x1  dif(x1)
1    .
2    1
4    2
5    1
7    2
dif(x1)是对X1做了差分,如果dif(x1)=1,那么提取本行和上一行的数据,请问这个怎么实现
二维码

扫码加我 拉你入群

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

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

关键词:DIF

沙发
wwang111 发表于 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;
只有一个罗纳尔多

藤椅
huangpengfei 发表于 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;

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

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

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

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