CALL SYMPUT SAS

【SAS】CALL SYMPUTは関数を用いてマクロ変数の代入ができる。

投稿日:2021年10月15日 更新日:

今回はCALL SYMPUTについて解説します。


/*その1*/
data data1;
  kyo = today();
run;
  • today()は本日の日付をSAS日付で取得する。

/*その2*/
data data1;
  kyo = put(today(),yymmdd10.);
run;
  • today()は本日の日付をSAS日付で取得する。
  • putにより、today()の値をyymmdd10.形式にしてkyoに代入する。

/*その3*/
%let kyo=2021-10-15;
%put &kyo.;
  • %letでkyoに「2021-10-15」が代入される。

/*その4*/
%let kyo = put(today(),yymmdd10.);
%put &kyo.;
  • その2とその3を合わせて、マクロ変数「kyo」に「put(today(),yymmdd10.)」を代入したいが、関数が計算されずに文字列として代入されてしまっている。
  • 関数はデータセットの中でしか使えない。

/*その5*/
data _NULL_;
  call symput("kyo",put(today(),yymmdd10.));
run;

%put &kyo.;
  • マクロ変数への代入で関数を使いたい場合はCALL SYMPUTを使う。
  • kyoに「2021-10-15」が代入される。

-CALL SYMPUT, SAS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】NLDATE関数はSAS日付値を設定した書式に変換して返す。

今回はNLDATE関数について解説します。 /* nldate_1 */ data data1; Id1 = nldate(’22jan2022’d,’%Y%m%d’); run; nldateにより …

【SAS】ABORTは実行を強制終了させる

今回はABORTについて解説します。 /*abort*/ data data1; id=”A”; chiku=”SHINJUKU”; output; id=”B”; chiku=”ICHIGAYA”; …

【SAS】DATAステートメントは複数データセットを出力できる。

今回はDATAステートメントで複数データセットを出力する方法について解説します。 /* data2 data3_1 */ data data1 ; id1=”1111″; id2=”1111″; id …

【SAS】SASで良く使うテクニック。その1 Excel関数のIF~2テーブルを比較したいとき~

今回はSASで良く使うテクニックということで、2テーブルを比較するときはExcelでIF関数を使うと良い理由を解説していきます。 ぜひ、やってみてください。 まずは比較したいデータセット2つをExce …

【SAS】DATETIME関数はSAS日時値を取得する。

今回はDATETIME関数について解説します。 /* datetime_1 */ data data1; aaaa = datetime(); run; datetime()はSAS時間値を取得する。 …