楼主: csm20cms
1645 3

[问答] 求助,如何分组循环if,分组筛选观测,取每组的最大值啊? [推广有奖]

  • 0关注
  • 0粉丝

高中生

2%

还不是VIP/贵宾

-

威望
0
论坛币
18 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
242 点
帖子
7
精华
0
在线时间
30 小时
注册时间
2019-4-1
最后登录
2021-7-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教:我的数据是这样:包括变量a  b,数据举例如下:
a          b 1          63
1          37
2          100
3          50
3          50
4          43
4          39
4          18
5          40
5          40
5          10
5          10
..............
  
现在需要判断,对于同一个a的值,保留b的最大值,舍弃b的较小值,如果b只有一个值则保留,如果b有相同的最大值则都保留。
即生成表:
a          b
1          63
2          100
3          50
3          50
4          43
5          40
5          40
..............
这个应该如何分组进行筛选呢?谢谢啊!

data mylib.time2;
set mylib.time1;
n=1;
do i=1 to 6230;
select;
when (_PAGE_=n) do;
n=n+1;
retain MaxPctN10;
MaxPctN10=max(MaxPctN10,PctN_10);
if PctN_10<MaxPctN10 then delete;
end;
end;
end;
run;

我写了这样的程序,可是要么没有结果,要么只有一个结果,不知道怎么弄了。
谢谢大家啊!


二维码

扫码加我 拉你入群

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

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

关键词:最大值 生成表 SAS 初学sas 求助! sas 求助 SAS应用

沙发
csm20cms 发表于 2019-4-2 21:26:47 |只看作者 |坛友微信交流群
求助大神们帮忙啊!

使用道具

藤椅
xiaopingN 发表于 2019-4-3 01:09:25 |只看作者 |坛友微信交流群
Data beforeMax;
input a b;
cards;
1          63
2          100
3          50
3          50
4          43
4          39
4          18
5          40
5          40
5          10
5          10
;
run;
proc sql;
create table max as
  select a,b
    from Beforemax
       group by a   
         having b not lt max(b);

quit;

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 + 3 + 3 + 3 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

板凳
csm20cms 发表于 2019-4-3 21:27:42 |只看作者 |坛友微信交流群
xiaopingN 发表于 2019-4-3 01:09
Data beforeMax;
input a b;
cards;
太感谢了啊!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 23:18