楼主: dxystata
1873 12

[问答] 如何保留visit=1 x=1 和visit>1 x=2和3的id [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2019-5-25 23:56:30 |AI写论文
10论坛币
  1. data aaa;
  2. input id visit x;
  3. cards;
  4. 1 1 1
  5. 1 2 1
  6. 1 3 3
  7. 1 4 4
  8. 2 1 1
  9. 2 2 3
  10. 3 1 2
复制代码
如何保留visit=1 x=1 和visit>1 x=2和3的id,结果为:id visit x
1 1 1
1 2 1
1 3 3
1 4 4
2 1 1
2 2 3
谢谢!


关键词:Visit visi isi sit cards

沙发
dxystata 发表于 2019-5-26 15:47:23
  1. data aaa;
  2. input id visit x;
  3. cards;
  4. 1 1 1
  5. 1 2 1
  6. 1 3 3
  7. 1 4 4
  8. 2 1 1
  9. 2 2 3
  10. 3 1 2
  11. 3 2 3
  12. 4 1 1
  13. 4 2 4
  14. ;
  15. run;
复制代码

藤椅
wwang111 发表于 2019-5-26 17:11:12
data wanted;
set aaa;
where (visit=1 and x=1) or (visit>1 and x in (2,3));
run;

板凳
dxystata 发表于 2019-5-26 17:42:08
wwang111 发表于 2019-5-26 17:11
data wanted;
set aaa;
where (visit=1 and x=1) or (visit>1 and x in (2,3));
结果不符哦!

报纸
whymath 发表于 2019-5-27 10:10:20
dxystata 发表于 2019-5-26 17:42
结果不符哦!
你给出的预期结果中的
1 2 1
1 4 4
不符合你所说的规则

地板
dxystata 发表于 2019-5-27 23:18:18 来自手机
whymath 发表于 2019-5-27 10:10
你给出的预期结果中的
1 2 1
1 4 4
结果为:
id visit x
1 1 1
1 2 1
1 3 3
1 4 4
2 1 1
2 2 3

7
whymath 发表于 2019-5-27 23:43:58
哦,明白了,你是说,输出符合条件
  1. (visit=1 and x=1) or (visit>1 and x in (2,3))
复制代码
的ID的全部观测?
那么使用一次数据集连接即可,以下是通过merge完成的例子:
  1. data bbb;
  2.         merge aaa(where=((visit=1 and x=1) or (visit>1 and x in (2,3))) in=Flag) aaa;
  3.         by ID;
  4.         if Flag;
  5. run;
复制代码


8
dxystata 发表于 2019-5-28 21:19:17
whymath 发表于 2019-5-27 23:43
哦,明白了,你是说,输出符合条件
的ID的全部观测?
那么使用一次数据集连接即可,以下是通过merge完成的 ...
结果应该是6条记录。

9
whymath 发表于 2019-5-28 21:40:55
dxystata 发表于 2019-5-28 21:19
结果应该是6条记录。
嗯,难道你运行得到的结果不是6条吗?

10
dxystata 发表于 2019-5-28 21:47:31
whymath 发表于 2019-5-28 21:40
嗯,难道你运行得到的结果不是6条吗?
  1. data aaa;
  2. input id visit x;
  3. cards;
  4. 1 1 1
  5. 1 2 1
  6. 1 3 3
  7. 1 4 4
  8. 2 1 1
  9. 2 2 3
  10. 3 1 2
  11. 3 2 3
  12. 4 1 1
  13. 4 2 4
  14. ;
  15. run;

  16. data bbb;
  17.     merge aaa(where=((visit=1 and x=1) or (visit>1 and x in (2,3))) in=Flag) aaa;
  18.     by ID;
  19.     if Flag;
  20. run;
复制代码

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

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