%LET %SYSFUNC SAS

【SAS】%SYSFUNC関数はデータステップの外でも関数を使えるようにする。その2(%LETステートメント中の挙動)

投稿日:2022年2月14日 更新日:

今回は%SYSFUNC関数について、%LETステートメント中の挙動に着目して解説します。


/* substr */
%let a = substr(123456789, 2, 4);

data data1;
  Id1=&a.;
  output;
run;

  • substrにより、2345を切り取ろうとしている。
  • データステップの外でsubstr関数を使うと動きがおかしい。(?)

/* %sysfunc_substr */
%let a = %sysfunc(substr(123456789, 2, 4));

data data1;
  Id1=&a.;
  output;
run;

  • substrにより、2345を切り取る。
  • %sysfuncにより、関数をデータステップの外で使える。⇒substrの動きが正常になった。

/* %sysfunc_date() */
%let a = %sysfunc(date(),yymmddn8.);

data data1;
  Id1=&a.;
  output;
run;

  • %sysfuncにより、関数をデータステップの外で使える。
  • %sysfuncはSAS日付値⇒日付形式への変換の役割も兼ねている(?)

/* put */
%let a = put(date(),yymmddn8.);

data data1;
  Id1=&a.;
  output;
run;

  • putにより、date()をyymmddn8.形式にする。
  • データステップの外でもput関数が使えている(?)

-%LET, %SYSFUNC, SAS

執筆者:


comment

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

関連記事

【SAS】DATASETSプロシージャを使ってデータセットを削除する。その2【KILL】

今回はDATASETSプロシージャを使ってデータセットを削除する方法の続きを解説していきます。(前回の参考:【SAS】DATASETSプロシージャを使ってデータセットを削除する。【DELETE】 | …

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

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

【SAS】足し算。その1(+演算子を用いた計算)

今回は+演算子を用いた足し算について解説します。  /* + */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; I …

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

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

【SAS】DROPオプションの位置による処理の違い

今回はDROPオプションの付き方によって、結果が異なるケースを解説します。 (対比:KEEP 【SAS】KEEPはカラムの選択に使える。 | ビジネスイッチ (how-to-business.com) …