SASデータセットに固定フィールドがあります。コストと呼ぼう。 20の異なる列を作成したいと思います。コスト - 5、コスト - 10、コスト - 15などですが、私はいくつかのフィールドでこれを行う必要があるため、これをコード化したくありません。SASはループを作成して列を作成します
私はSASのdoループでこれをどのように行うことができますか?またはこれを行う簡単な方法がある場合、私は知りたいです。ありがとう!
SASデータセットに固定フィールドがあります。コストと呼ぼう。 20の異なる列を作成したいと思います。コスト - 5、コスト - 10、コスト - 15などですが、私はいくつかのフィールドでこれを行う必要があるため、これをコード化したくありません。SASはループを作成して列を作成します
私はSASのdoループでこれをどのように行うことができますか?またはこれを行う簡単な方法がある場合、私は知りたいです。ありがとう!
ここでの一般的なアプローチは、複数のものに対してこれを行う場合は、配列とおそらくそれらの配列を使用することです。
data class;
set sashelp.class;
array ages[5]; *your array, holding your 5 new columns;
do _i = 1 to 5; *loop over the array;
ages[_i] = age-_i; *or -(5*_i) or whatever you are doing;
end;
run;
その後、あなたは多くの変数のために、これらの4本のラインを取るマクロに入れ、変更される可能性があります何のためのパラメータを作成し、datastepからあなたが必要しかし、何度もそれを呼び出すことを行いたい場合。ループはマクロ内部にあり、マクロループではなくデータステップループです。
変数を明示的にarray文に指定することもできますし、SASがデフォルトで行うこともできます。また、命名された変数をインテリジェントに命名したい場合は、マクロを作成して名前付き変数を作成することもできます。
ありがとうございます!私は今働いている。私は本当に感謝しています –
実際には、ジョー - 私は年齢を取るようにしようとしていると、それを5%削減し、10%などを減らすなど...今はそれを動作させることはできません。私はSASに馬鹿です。何かご意見は?バグ申し訳ありません。 –
年齢[_i] =年齢*(.05 * _i);やそれに類するもの? – Joe