他の変数に含まれるデータに基づいて SAS 変数名を作成しようとしています。たとえば、私はから始めることができます
Obs Var1 Var2
1 abc X
2 def X
3 ghi Y
4 jkl X
そして、私はで終わりたいです
Obs Var1 Var2 X Y
1 abc X abc
2 def X def
3 ghi Y ghi
4 jkl X jkl
これを行う方法は 1 つありますが、最初に必要な変数を (長さステートメントを使用して) 作成し、次にデータ ステップ ループ内で後で呼び出される一連の番号付きマクロ変数 (観察ごとに 1 つ) を作成するために、やや醜いマクロが必要です。 . それは機能しますが、複雑であり、行ごとに作成するための複数の変数と数千行を含む実際のデータにうまくスケーリングするとは思いません。
変数名をマクロ変数に保存し、それを使用して配列ステートメントを生成し、新しい変数ごとに必要な配列インデックスを追跡しようとしましたが、これも複雑です。
本当に役立つのは、
vvaluex(var2)=var1
ただし、vvaluex を等号の左側に置くことはできません。考えやアイデアはありますか?