%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】WHEREステートメントはIFステートメントと同様に処理条件を設定できる。(分岐)

今回はWHEREステートメントについて解説します。 /* where */ data data1; Id1=1111; Char1=”AAAA”; output; Id1=2222; Char1=”B …

【SAS】SASで良く使うテクニック。その11「Ctrl+/」~範囲指定でコメントを入れたい時~【SAS Studio】

今回はSASで良く使うテクニックということで、範囲指定でコメントを入れたい時は、「Ctrl+/」が役に立つ理由を解説していきます。 以下のようにソースコードを準備します。(ソースコードの内容は何でも良 …

【SAS】DROPはデータセットから変数を削除する

今回はDROPについて解説します。 (対比:KEEP 【SAS】KEEPはカラムの選択に使える。 | ビジネスイッチ (how-to-business.com)) /* drop_1 */ data …

【SAS】%PUTステートメントは文字列をログに出力する。その1

今回は%PUTについて解説します。 /* %put */ %put CHAR; %putにより、文字列をログに出力できる。 /* %let */ %let CHAR = aaaa ; %put &am …

【SAS】||(!!)は文字列の連結ができる。【結合】

今回は||(!!)について解説します。 /* || */ data data1; Id1=1111; Char1=”AA AA”; output; Id1=2222; Char1=” BBBB”; o …