2016-08-03 7 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

あなたはまだ保持変数を初期化しています - なぜですか?真の最大値が例えば0である場合、データステップは間違った値を返します。 '-1e9'。 'retain max_STay_yr;'は期待どおりに動作します。 – Therkel

関連する問題