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】COMPRESSオプションでデータセットを圧縮できる(パフォーマンスも向上するかも)

今回はCOMPRESSオプションでデータセットを圧縮する方法について解説していきたいと思います。 まずは、通常のデータセットから。 /* 非圧縮 */ data data1; id1=”1111”; …

【SAS】PRINTプロシージャは入力データセットの中身を結果に表示する【obs=】

今回はPRINTプロシージャについて解説します。 /* print */ data data1; 番号=”AAAAAA”; コード=”02″; 金額=1999; output; 番号=”AAAAAA” …

【SAS】FORMATステートメントは文字列の出力形式を変換する。

今回はFORMATステートメントについて解説します。 /* format */ data data1; Id1=111111; output; run; data data2; set data1; …

【SAS】足し算。その3(SUM関数を用いた計算)【of】

今回はSUM関数を用いた足し算で、ofを使った計算について解説します。  (前回はSUM関数を用いた足し算について解説しました。⇒【SAS】足し算。その2(SUM関数を用いた計算) | ビジ …

【SAS】FIRST, LAST↔SORT NODUPKEYの変換

今回はfirst, last↔SORT NODUPKEYの変換について解説します。 結論を先に書くと、変換できる場合、変換できない場合とがあります。 /*sort1*/ data dat …