gpt4 book ai didi

sas - 有没有更好的方法可以比较SAS中不同行之间的案例?

转载 作者:行者123 更新时间:2023-12-04 21:51:13 24 4
gpt4 key购买 nike

在某些数据清理过程中,需要比较不同行之间的数据。例如,如果行具有相同的countryID和subjectID,则保持最高温度:

CountryID      SubjectID     Temperature
1001 501 36
1001 501 38
1001 510 37
1013 501 36
1013 501 39
1095 532 36


在这种情况下,我将按以下方式使用 lag()函数。

proc sort table;
by CountryID SubjectID descending Temperature;
run;
data table_laged;
set table;
CountryID_lag = lag(CountryID);
SubjectID_lag = lag(SubjectID);
Temperature_lag = lag(Temperature);
if CountryID = CountryID_lag and SubjectID = SubjectID_lag then do;
if Temperature < Temperature_lag then delete;
end;
drop CountryID_lag SubjectID_lag Temperature_lag;
run;


上面的代码可能有效。

但是我仍然想知道是否有更好的方法来解决此类问题?

最佳答案

我认为您使任务复杂化。您可以使用proc sqlmax函数:

proc sql noprint;
create table table_laged as
select CountryID,SubjectID,max(Temperature)
from table
group by CountryID,SubjectID;
quit;

关于sas - 有没有更好的方法可以比较SAS中不同行之间的案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304719/

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