%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】LIKE演算子は部分一致を表現できる。【WHERE】

/* if ‘%aaaa%’ */ data data1; Id1=1111; Id2=”1aaaa”; Id3=1111; output; Id1=2222; Id2=”bbbb”; Id3=222 …

【SAS】”nは本来使用できない文字を使用可能にする。

今回は”nについて解説します。(参考:Solved: what the ”  ‘n ” means? – SAS Support Commu …

【SAS】サブクエリについて解説

今回はSQLのfrom句にサブクエリを使用した場合の動きについて、解説します。 [from句] まずは通常のSQLプロシージャから。 /* サブクエリ(from句_1) */ data data1; …

【SAS】PUTC関数は文字列に対して出力形式を指定して変換する。

今回はPUTC関数について解説します。 /* putc_1 */ proc format; value point “aaaa”=’Low’ “bbbb”=’High’; run; data data …

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

今回はCALL SYMPUTについて解説します。 /*その1*/ data data1; kyo = today(); run; today()は本日の日付をSAS日付で取得する。 /*その2*/ d …