SAS マクロ変数のサンプル

SASのマクロ変数のサンプルです。

目次

サンプル マクロ変数(LETステートメント)
  変数の値を囲まない
  変数の値をダブルコーテーションでくくる
  変数の値をシングルコーテーションでくくる

マクロ変数(LETステートメント)

%let 変数名 = 値

 

変数の値を囲まない

%let test1=テスト1です;

DATA _NULL_;

put "&test1"; /* テスト1です */

put "これは&test1"; /* これはテスト1です */

/* put &test1; <<< これはエラーになる */

run;

1行目は、letステートメントでマクロ変数を定義しています。
値をダブルコーテション等で囲っていません。
5行目は、マクロ変数を出力しています。
7行目は、文字列とマクロ変数をダブルコーテーションで括っています。連結して出力します。
マクロ変数の利用時はアンパサンド(&)を使用します。
9行目は、マクロ変数をダブルコーテーションで括っていません。このケースはエラーになります。

 

変数の値をダブルコーテーションでくくる

%let test1="テスト1です";

DATA _NULL_;

put &test1; /* テスト1です */

/* put "&test1"; <<< これはエラーになる */

run;

1行目は、letステートメントでマクロ変数を定義しています。
値をダブルコーテションで囲っています。
5行目は、マクロ変数を出力しています。ダブルコーテションで括っていません。
7行目は、マクロ変数をダブルコーテーションで括っています。このケースはエラーになります。

 

変数の値をシングルコーテーションでくくる

%let test1='テスト1です';

DATA _NULL_;

put &test1; /* テスト1です */

put "&test1"; /* 'テスト1です' */

put "これは&test1"; /* これは'テスト1です' */

put 'これは&test1'; /* これは&test1 */

run;

1行目は、letステートメントでマクロ変数を定義しています。
値をシングルコーテションで囲っています。
5行目は、マクロ変数を出力しています。ダブルコーテションで括っていません。
7,9行目は、文字列にシングルコーテションがつきます。
11行目の&test1は文字列としてそのまま出力されます。

関連の記事

SAS if文のサンプル
SAS ループ文のサンプル(do)

△上に戻る