gpt4 book ai didi

SAS 按 ID 保留最大值

转载 作者:行者123 更新时间:2023-12-01 21:27:08 25 4
gpt4 key购买 nike

每个ID有多个实例,每个实例都有不同的值。我希望最终输出是每个 ID 的最大值。所以初始数据集是:

 ID     Value
1 100
1 7
1 65
2 12
2 97
3 82
3 54

输出将是:

 ID     Value
1 100
2 97
3 82

我尝试运行 proc sort 两次,认为第一次排序会按正确的顺序获取内容,以便第二次排序上的 nodupkey 会删除正确的值。这不起作用。

 proc sort work.data; by id value descending; run;
proc sort work.data nodupkey; by id; run;

谢谢!

最佳答案

您的方法应该可以正常工作,但看起来您有语法错误 - 您是否忘记检查日志?降序关键字需要位于要按降序排序的变量之前。

proc sort data=sashelp.class out=tmp;
by sex descending height;
run;

proc sort data=tmp out=final nodupkey;
by sex;
run;

另外 - 如果您不熟悉 SQL,我强烈建议您学习它,因为它将简化许多数据操作任务。这也可以通过单个 SQL 步骤来解决:

proc sql noprint;
create table want as
select sex,
max(height) as height
from sashelp.class
group by sex
;
quit;

关于SAS 按 ID 保留最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com