前のページ|次のページ

CALL SYMPUTXルーチン

マクロ変数に値を割り当て、先頭と末尾の空白の両方を削除します。

カテゴリ: マクロ

構文

CALL SYMPUTX(macro-variable, value <, symbol-table>);

必須引数

macro-variable

次のいずれかを指定できます。

  • SAS名を表す、引用符で囲んだ文字列。
  • SAS名の値を持つ文字変数の名前。
  • マクロ変数名を生成する文字式。この形式は、一連のマクロ変数を作成する場合に役立ちます。
文字定数、変数または式。nameの値から先頭と末尾の空白が削除され、その結果がマクロ変数の名前として使用されます。

value

文字または数値の定数、変数または式を指定します。valueが数値の場合、値はBEST.出力形式を使用して文字列に変換され、SASログにメモは発行されません。先頭と末尾の空白が削除され、その結果の文字列がマクロ変数に割り当てられます。

オプション引数

symbol-table

文字定数、変数または式を指定します。symbol-tableの値の大文字と小文字は区別されません。symbol-tableの最初の空白以外の文字で、マクロ変数の保存先の記号テーブルを指定します。symbol-tableの最初の非空白文字として有効な値は次のとおりです。

G マクロ変数は、ローカル記号テーブルが存在する場合でも、グローバル記号テーブルに保存されます。
L マクロ変数は、存在する最もローカルな記号テーブルに保存され、マクロの外側で使用する場合、このテーブルはグローバル記号テーブルになります。
F マクロ変数が記号テーブルに存在する場合、CALL SYMPUTXはマクロ変数が存在する最もローカルな記号テーブルのバージョンを使用します。マクロ変数が存在しない場合、CALL SYMPUTXは最もローカルな記号テーブルに変数を保存します。
注: symbol-tableを省略したり、symbol-tableが空白の場合、CALL SYMPUTXはCALL SYMPUTルーチンと同じ記号テーブルにマクロ変数を保存します。

詳細

CALL SYMPUTXは次の点を除き、CALL SYMPUTに似ています。
  • 第2引数が数値のとき、CALL SYMPUTXはSASログにメモを書き込みません。ただし、CALL SYMPUTは、ログに数値が文字値に変換されたというメモを書き込みます。
  • CALL SYMPUTXは、数値の第2引数を文字値に変換するとき、最大で32文字のフィールド幅を使用します。CALL SYMPUTは最大で12文字のフィールド幅を使用します。
  • CALL SYMPUTXは両方の引数を左寄せし、末尾の空白を取り除きます。CALL SYMPUTは引数を左寄せせず、第1引数のみから末尾の空白を取り除きます。nameの値の先頭に空白があるとエラーが発生します。
  • CALL SYMPUTXでは、マクロ変数を保存する記号テーブルを指定できるのに対し、CALL SYMPUTでは指定できません。

例: CALL SYMPUTXを使用する

CALL SYMPUTXを使用した結果の例を次に示します。
data _null_;
   call symputx('  items  ', '   leading and trailing blanks removed   ',
                'lplace');
   call symputx('  x   ', 123.456);
run;
%put items=!&items!;
%put x=!&x!;
次の出力がログに書き込まれます。
items=!leading and trailing blanks removed! x=!123.456!

関連項目:

関数:
CALLルーチン:
前のページ|次のページ|ページの先頭へ