楼主: gotobest
9580 4

找出每组中最大值并保留数据 [推广有奖]

  • 3关注
  • 1粉丝

硕士生

5%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1060 点
帖子
61
精华
0
在线时间
117 小时
注册时间
2014-9-17
最后登录
2016-9-28

楼主
gotobest 发表于 2015-1-7 11:04:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input time datetime16. n a i j;
cards;
13JUL14:00:00:01 1 0 0 1
13JUL14:00:00:02 2 0 0 1
13JUL14:00:00:03 3 0 1 1
13JUL14:00:00:04 4 1 3 1
13JUL14:00:00:05 5 1 0 1
13JUL14:00:00:06 6 3 0 1
13JUL14:00:00:07 7 1 0 1
13JUL14:00:00:08 8 0 1 1
13JUL14:00:00:09 9 0 0 1
13JUL14:00:00:10 10 0 1 1
13JUL14:00:00:11 1 1 0 2
13JUL14:00:00:12 2 0 0 2
13JUL14:00:00:13 3 1 0 2
13JUL14:00:00:14 4 1 5 2
13JUL14:00:00:15 5 0 0 2
13JUL14:00:00:16 6 0 0 2
13JUL14:00:00:17 7 5 1 2
13JUL14:00:00:18 8 1 0 2
13JUL14:00:00:19 9 0 0 2
13JUL14:00:00:20 10 1 0 2
;
run;
proc sql;
create table b as
select max(a) into :x from a by group j;
quit;
数据集a中观测按照n分两组,10个观测为一组,找出每组中a的最大值max(a) ,创建数据集b,使b中只保留每组中n=max(a) 和i=max(a) 的数据,然后计算时间差,如何做到?请指教!thank you!!

二维码

扫码加我 拉你入群

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

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

关键词:最大值 Thank you proc sql datetime Select 最大值

沙发
Tony-CQNU 发表于 2015-1-7 11:11:54
加个 DENSE_ROW,然后用PARTITON BY 就好了~

藤椅
gotobest 发表于 2015-1-7 11:35:27
Tony-CQNU 发表于 2015-1-7 11:11
加个 DENSE_ROW,然后用PARTITON BY 就好了~
您好!可否详细点?我的程序是可以直接运行的。谢谢啦!

板凳
sushe1527 发表于 2015-1-7 12:15:21
  1. data raw;
  2. input time datetime16. n a i j;
  3. cards;
  4. 13JUL14:00:00:01 1 0 0 1
  5. 13JUL14:00:00:02 2 0 0 1
  6. 13JUL14:00:00:03 3 0 1 1
  7. 13JUL14:00:00:04 4 1 3 1
  8. 13JUL14:00:00:05 5 1 0 1
  9. 13JUL14:00:00:06 6 3 0 1
  10. 13JUL14:00:00:07 7 1 0 1
  11. 13JUL14:00:00:08 8 0 1 1
  12. 13JUL14:00:00:09 9 0 0 1
  13. 13JUL14:00:00:10 10 0 1 1
  14. 13JUL14:00:00:11 1 1 0 2
  15. 13JUL14:00:00:12 2 0 0 2
  16. 13JUL14:00:00:13 3 1 0 2
  17. 13JUL14:00:00:14 4 1 5 2
  18. 13JUL14:00:00:15 5 0 0 2
  19. 13JUL14:00:00:16 6 0 0 2
  20. 13JUL14:00:00:17 7 5 1 2
  21. 13JUL14:00:00:18 8 1 0 2
  22. 13JUL14:00:00:19 9 0 0 2
  23. 13JUL14:00:00:20 10 1 0 2
  24. ;
  25. run;
  26. proc sql;
  27. create table b as select * from raw by group j having max(a)=n or max(a)=i ;
  28. quit;
  29. data b(keep=n i diff);set b;diff=time-lag(time);run;
复制代码
已有 1 人评分经验 收起 理由
李会超 + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

报纸
gotobest 发表于 2015-1-7 15:25:44
sushe1527 发表于 2015-1-7 12:15
您好!特别感谢您的解答!非常好!请问如果做成快照式的该如何写呢?我现在是用j分了两组,如果是每个a与前10条观测中n的值相等的数据保留,该如何做呢?劳驾啦!

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

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