楼主: dxystata
841 2

[问答] data步如何实现 [推广有奖]

版主

已卖: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 发表于 2023-9-16 21:30:58 |AI写论文
20论坛币
  1. data aaa;
  2. input id x$ group groupid sev;
  3. cards;
  4. 1 aa 1 1 1
  5. 1 bb 1 2 2
  6. 1 bb 1 2 1
  7. 1 cc 1 3 2
复制代码
要求:
1. 每个个体grouid相同只保留sev大的观测
2. 每个个体保留sev最大的观测
结果是
1 bb 1 2 2
1 bb 1 4 2
1 cc 1 3 2
2 ff 1 2 3
3 cc 2 3 3
4 bb 2 2 2


data步如何实现?谢谢!

最佳答案

AngleeZZ 查看完整内容

你给的数据不全。只有id=1的数据。 脑袋闪过四五种解决方法。 一下贴出最常规方法 data aaa; input id x$ group groupid sev; cards; 1 aa 1 1 1 1 bb 1 2 2 1 bb 1 2 1 1 cc 1 3 2 1 bb 1 4 1 1 bb 1 4 2 2 ff 1 2 3 2 ff 1 2 2 2 ff 1 2 1 3 cc 2 3 3 3 cc 2 3 1 4 bb 2 2 2 ; proc sort data=aaa; by id x groupid sev; run; data results; set aaa; by id x groupid sev; if last.groupid ...
关键词:data步 Data 如何实现 Group cards

沙发
AngleeZZ 发表于 2023-9-16 21:30:59
你给的数据不全。只有id=1的数据。
脑袋闪过四五种解决方法。
一下贴出最常规方法
data aaa;
input id x$ group groupid sev;
cards;
1 aa 1 1 1
1 bb 1 2 2
1 bb 1 2 1
1 cc 1 3 2
1 bb 1 4 1
1 bb 1 4 2
2 ff 1 2 3
2 ff 1 2 2
2 ff 1 2 1
3 cc 2 3 3
3 cc 2 3 1
4 bb 2 2 2
;

proc sort data=aaa;
  by id x groupid sev;
run;
data results;
  set aaa;
  by id x groupid sev;
  if last.groupid;
run;

id x group groupid sev
1 aa 1 1 1
1 bb 1 2 2
1 bb 1 4 2
1 cc 1 3 2
2 ff 1 2 3
3 cc 2 3 3
4 bb 2 2 2
已有 1 人评分经验 热心指数 收起 理由
dxystata + 100 + 1 热心帮助其他会员

总评分: 经验 + 100  热心指数 + 1   查看全部评分

藤椅
dxystata 发表于 2023-9-21 09:10:46
  1. data aaa;
  2. input id x$ group groupid sev;
  3. cards;
  4. 1 aa 1 1 1
  5. 1 bb 1 2 2
  6. 1 bb 1 2 1
  7. 1 cc 1 3 2
  8. 2 dd 1 1 1
  9. 2 ff 1 2 3
  10. 2 ff 1 2 2
  11. 3 aa 2 1 .
  12. 3 bb 2 2 2
  13. 3 cc 2 3 3
  14. 4 aa 2 1 1
  15. 4 bb 2 2 2
  16. 4 bb 2 2 1
  17. 4 cc 2 3 1
  18. ;
  19. run;
复制代码


数据是这样的

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

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