同じ変数名を持つ複数のデータセット (数百) があり、それらをキーでマージしたい場合、キーではない変数に対してどの変数の値を取るかを制御する簡単な方法はありますか? これを行う1つの方法は、mergeステートメントで名前を変更し、名前を変更した変数を使用して配列で最も頻繁な値を計算する別のステップを作成することです...しかし、これを処理する組み込みの方法があるかどうかは本当に疑問です. 例えば:
data ds1;
infile datalines dsd delimiter=' ';
input var1 $ var2;
datalines;
a 1
b 2
;
run;
data ds2;
infile datalines dsd delimiter=' ';
input var1 $ var2;
datalines;
a
b 2
;
run;
data ds3;
infile datalines dsd delimiter=' ';
input var1 $ var2;
datalines;
a 1
b
;
run;
data ds123;
merge ds1 ds2 ds3;
by var1;
run;
このコードは、「一番右」の var2、つまりデータセット ds123 を「選択」します。
a 1
b
しかし、私はそれが欲しいかもしれません:
a 1
b 2
これは、最も頻度の高い値と一致するためです。