全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1548 2
2018-12-18
悬赏 50 个论坛币 已解决
怎样取得一组数据最大值并列出该组某变量值与最大值不符的组所有记录,数据如下
要求
1.MAX_SUBID的值是相同ID(相同组)中SUBID的最大值,比如ID=2组SUBID最大值为3,则该组每条记录的MAX_SUBID填入3;
2.如果该组中有某一A1与MAX_SUBID不符,把该组数据归到某数据集中,比如这里ID=2及ID=4中就有A1与MAX_SUBID不符的,需把这些记录归到新数据集B中。
复制代码

希望最终数据集B如下
复制代码



最佳答案

l1i2n3i4n5g 查看完整内容

根据你的描述出来的结果和数据集B有出入! data test; input ID A1 SUBID; cards; 1 1 1 2 2 1 2 3 2 2 3 3 3 2 1 3 2 2 4 4 1 4 3 2 4 4 3 4 2 4 5 1 1 6 2 2 6 2 2 ; run; proc sql; create table test_MAX_SUBID as select id, max(SUBID) as MAX_SUBID from test group by id; quit; proc sql; create table test_left_join as s ...
二维码

扫码加我 拉你入群

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

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

全部回复
2018-12-18 12:52:14
根据你的描述出来的结果和数据集B有出入!
data test;
   input ID A1 SUBID;
cards;
1   1  1
2   2  1
2   3  2
2   3  3
3   2  1
3   2  2
4   4  1
4   3  2
4   4  3
4   2  4
5   1  1
6   2  2
6   2  2
;
run;

proc sql;
   create table test_MAX_SUBID as
   select id, max(SUBID) as MAX_SUBID
   from test
   group by id;
quit;

proc sql;
   create table test_left_join as
   select * from test left join test_MAX_SUBID
   on test.id=test_MAX_SUBID.id;
run;

data b;
   set test_left_join;
   if A1^=MAX_SUBID;
run;
二维码

扫码加我 拉你入群

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

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

2018-12-18 19:21:25
谢谢,我再修改下,达到我要求了。
复制代码


二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群