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