SAS SCAN

【SAS】SCAN関数は区切り文字を認識し、一部を抜き出せる。

投稿日:2021年12月24日 更新日:

今回はSCAN関数について解説します。


/* "1111","2222","3333" */
data data1;
  Id1="1111","2222","3333";
run;

data data2; set data1;
  Id2=scan(Id1,2,",");
run;

  • scanによりカンマ区切りの文字列の一部を抜き出せる。

/* ("1111,2222,3333") */
data data1;
  Id1=("1111,2222,3333");
run;

data data2; set data1;
  Id2=scan(Id1,2,",");
run;

  • scanによりカンマ区切りの文字列の一部を抜き出せる。
  • (“〇〇〇〇”)でも結果は変わらない。

/* 4 */
data data1;
  Id1="1111,2222,3333";
run;

data data2; set data1;
  Id2=scan(Id1,4,",");
run;

  • scanによりカンマ区切りの文字列の一部を抜き出せる。
  • 存在するよりも大きい数を与えた場合、中身は欠損値になる。

/* 0 */
data data1;
  Id1="1111,2222,3333";
run;

data data2; set data1;
  Id2=scan(Id1,0,",");
run;

  • scanによりカンマ区切りの文字列の一部を抜き出せる。
  • 0を設定した場合、中身は欠損値になる。

-SAS, SCAN

執筆者:


comment

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

関連記事

【SAS】YYYY-MM表記にする方法【SUBSTR】【||】

今回はYYYYMMDD表記の年月日をYYYY-MM表記にしたいと思います。 結論:SUBSTRと||を使います。 (SUBSTR:【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。 | …

【SAS】オブザベーションを跨いだ計算【RETAIN】【SAS Base Programming対策4】

/* retain */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=2222; Id3=2222; output; …

【SAS】LIBNAMEはディレクトリパスをライブラリに割り当てる

今回はLIBNAMEについて解説します。 ちなみにSAS Base Programmingでは、LIBNAMEができないと前半の記述問題が解けません。(データセットが与えられるので、割り当てられないと …

【SAS】マクロ変数の&&について解説

今回はマクロ変数の&&について解説していきます。 (参考:%PUT 【SAS】%PUTステートメントは文字列をログに出力する。その1 | ビジネスイッチ (how-to-busines …

【SAS】TRANSPOSEは縦持ち、横持ちを変換できる。その1

今回はTRANSPOSEについて解説します。 /* num char char */ data data1; NO=1111; CHAR=”A”; MOJI=”AAAA”; output; NO=22 …