私が書いたSASコードに触れて、より効果的に実行したいコードを見つけました。私は時系列データセットを 'Forecasts'と呼んでいます。これはちょうど日付と 'Forecast'変数から成っています。SAS:データステップでマクロ変数を数値として使用する
私は、この変数を取り、基本的には一連の変数にそれを切り刻む、1つの日付を表す各1に、コードの単純なブロックを書いた:
data forecasts;
set forecasts;
obs=_n_;
array r(241);
do i=1 to dim(r);
if obs=i then r(i)=Forecast;
end; drop i; drop obs; drop forecast;
run;
ただし、R「(241」)の一部このコードは本当に私を悩ます。
array r(&n)
など:、のようなものを私はすでに、私は(「N」と呼ばれる)は、この操作を実行する必要が倍の数に対応したマクロ変数を持っている、と私はむしろちょうど直接配列の宣言に差し込みます。
マクロ変数は明らかにテキストと見なされるため、マクロ変数をデータステップにインポートしても、変数n(nは数字ではない)が読み込まれないため、バリアントr(& n)は機能しません。 。このデータ・ステップ全体をより広いマクロにラップするのではなく、どのようにして 'n'をデータ・ステップに引き込み、それを数値に変換してこの操作が機能するのでしょうか?
奇妙な話、私は私が使用して&Nがあなたの時間を無駄にするために申し訳ありませんが、うまく動作しない過度に複雑コールのすべての種類などを使用して、ちょうど&Nを除いてすべてを試みだと思います。 –