1
称呼,我需要获取列中的最大值。所以我可以把它变成一个变量并在另一个查询中使用它。就像是。如何选择数据集中最大的变量并将其分配给sas中的宏
%let maxyear = MAX(STay_yr)
help!
称呼,我需要获取列中的最大值。所以我可以把它变成一个变量并在另一个查询中使用它。就像是。如何选择数据集中最大的变量并将其分配给sas中的宏
%let maxyear = MAX(STay_yr)
help!
您可以使用PROC SQL和成:
proc sql;
select max(STay_yr) into :maxyear
from some_dataset;
quit;
而另一david25272的变种:
data _null_;
set have end = last;
retain max_STay_yr;
if STay_yr > max_STay_yr then max_STay_yr = STay_yr;
if last then call symput("maxyear",max_STay_yr);
run;
可变maxyear
将成为最高值。
您可以从&maxyear
进一步获取值。
如果所有值均为负数,则表示存在问题,即不应初始化'max_STay_yr'。此外,你可以简化你的第一个'if'语句(第4行),简单地说'max_STay_yr = max(max_STay_yr,STay_yr);'。 – Therkel
修复了它,谢谢 –
你还在初始化你的保留变量 - 为什么?如果真实的最大值是例如,您的数据步骤将返回错误的值'-1e9'。 '保留max_STay_yr;'按预期工作。 – Therkel