2016-08-03 32 views

回答

3

您可以使用PROC SQL和成:

proc sql; 
    select max(STay_yr) into :maxyear 
    from some_dataset; 
quit; 
0

而另一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进一步获取值。

+0

如果所有值均为负数,则表示存在问题,即不应初始化'max_STay_yr'。此外,你可以简化你的第一个'if'语句(第4行),简单地说'max_STay_yr = max(max_STay_yr,STay_yr);'。 – Therkel

+0

修复了它,谢谢 –

+0

你还在初始化你的保留变量 - 为什么?如果真实的最大值是例如,您的数据步骤将返回错误的值'-1e9'。 '保留max_STay_yr;'按预期工作。 – Therkel

相关问题