楼主: fjlhr
1080 3

[问答] 求大神帮忙解决一个数据筛选问题! [推广有奖]

  • 0关注
  • 23粉丝

已卖:3857份资源

学科带头人

4%

还不是VIP/贵宾

-

威望
1
论坛币
19033 个
通用积分
25.7715
学术水平
103 点
热心指数
115 点
信用等级
91 点
经验
85696 点
帖子
621
精华
3
在线时间
2035 小时
注册时间
2012-2-14
最后登录
2023-3-9

初级热心勋章 初级学术勋章

楼主
fjlhr 在职认证  发表于 2014-5-4 20:28:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是这样的,假如我有以下一列数据:obs     x
1       1
2       2
3       5
4       3
5       4
6       6
7       9
8       7
9       11
10      16

现在我想从第一个开始,找出变量X中数据之差的绝对值>=4的记录,比如说,第一行和第三行,接着以第三行的5为基准,寻找下一个和它相差4的数据,如第7行的9。最终得到:
obs   x
1      1
3      5
7      9
10    16
想用retain语句,但一直跑不出来,所以寻找坛里的大神!

二维码

扫码加我 拉你入群

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

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

关键词:数据筛选 RETAIN obs ETA RET 绝对值 记录

沙发
intheangel 学生认证  发表于 2014-5-4 20:58:39
  1. obs     x
  2. 1       1
  3. 2       2
  4. 3       5
  5. 4       3
  6. 5       4
  7. 6       6
  8. 7       9
  9. 8       7
  10. 9       11
  11. 10      16
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

藤椅
intheangel 学生认证  发表于 2014-5-4 20:58:52
  1. data x;
  2. input obs     x;
  3. cards;
  4. 1       1
  5. 2       2
  6. 3       5
  7. 4       3
  8. 5       4
  9. 6       6
  10. 7       9
  11. 8       7
  12. 9       11
  13. 10      16
  14. ;
  15. run;

  16. data z(keep=obs x);
  17. set x;
  18. retain y;
  19. if _n_=1 then do;
  20. y=x;
  21. output;
  22. end;
  23. if abs(y-x) ge 4 then do;
  24. y=x;
  25. output;
  26. end;
  27. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fjlhr + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

板凳
fjlhr 在职认证  发表于 2014-5-4 22:17:04
intheangel 发表于 2014-5-4 20:58
太感谢了!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 03:56