多くの行のコードを入力する必要がないように、SASで配列変数にラベルを付けるためにマクロを使用しようとしています。私がしようとしているのは基本的にはこれです:SAS:配列に渡されるマクロ
%macro LABEL_ARRAY(V);
%DO I = 1 %TO 4;
%let variablename=&V(&I);
array1[&I] = "Value of &variablename"
%END
%MEND LABEL_ARRAY;
したがって、Vは配列array1内の位置に対応する変数名を含む配列です。私は配列ごとに4つ以上の変数と多数の配列に対してこれを実行しようとしていますが、それは基本的な考え方です。基本的に何が起きているのかは、array1 [& I]です。最初のエントリでarray1 [1]と言っていますが、値は使用していません。&私は& variablenameと同じことを言っています。
何が起こっているかについてのご意見はありますか?ありがとう。
あなたは%let variablename =&&V(&I);を試してみることができますが、それはうまくいくかどうかはわかりませんが、実際にそれを次のように変更してください:%let variablename = &&V&I;それはうまくいくはずです – DCR
私はあなたが欲しいものとして混乱しています。マクロを使用するデータステップを表示できますか?変数にラベルを付けるが、LABELステートメントはないと言う。 Array1 [&i]はあなたが望むようにarray1 [1]に解決します。 &Variablenameは変数名に解決されません。あなたはVNAME関数を見たいかもしれません。しかし、データ・ステップ配列を使用して変数ラベルを割り当てることはできません。 – Quentin
@Quentinこれは、おそらく 'label%label_array(v);'のように使われるラベルステートメントを作ります。 – Joe