2017-02-01 22 views
0

変数がvar1var1_testのデータセットがあるとします。私は入力var1でマクロを書いています。今私はvar1"_test"という文字列からvar1_testを作成する方法を探しています。最終的には、この変数をwhere条件で使用したいと考えています。私が試した次別のマクロ変数と文字列からSASマクロ変数名を作成する方法は?

%macro some_name(var =); 

    %let var2 = %sysfunc(catx(&var., '_test')); 

    proc sql; 
    select ... 
     from ... 
      where &var2. = 1; 
quit; 

%mend; 
+1

これを試してください: '%let var2 =&var._test;' –

+0

非常に単純です。ありがとうございます:-) –

+0

'var2'という名前のマクロ変数を作成しようとしていますか?その名前を' var1_test'にしますか?あるいは、WHERE句に入ることができる限り重要ではありませんか? – Snorex

答えて

1

あなたはマクロ言語でマクロ変数とcat機能を使用する必要はありません。それらは開いたテキストなので、それらの隣にもっと多くのテキストを置くだけで、自動的に連結されます。あなたはまた、(それだけで連結する一つのことを見ているように、それは、何を連結しません)catxは、最初の引数は区切り文字であるので、途中で区切り文字を置くためで、間違ったCAT機能を使用している

%let var2 = &var._test; 

%sysfuncで正しくない引数の前後に引用符を使用すると、そのコンテキストの引用符は文字列区切り文字ではなく実際の文字として扱われます。

関連する問題