!! SAS SUBSTR ||

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

投稿日:2023年3月26日 更新日:

今回はYYYYMMDD表記の年月日をYYYY-MM表記にしたいと思います。

結論:SUBSTRと||を使います。

(SUBSTR:【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。 | ビジネスイッチ (how-to-business.com)

(||:【SAS】||(!!)は文字列の連結ができる。【結合】 | ビジネスイッチ (how-to-business.com)

YYYYMM表記であれば、put(○○,yymmn.)で簡単に作れるのですが、

(PUT:【SAS】PUTはSAS日付値をフォーマットを変換して表示する【DATE】【YYMMDD】【DATETIME】【TIME】【TOD】 | ビジネスイッチ (how-to-business.com)

ハイフン付(YYYY-MM)はputによる日付変換では作成できません。


/* yymmn */
data data1;
  id1 = "20230326";
run;

data data2; set data1;
  id2 = input(id1, yymmdd8.);
  id3 = put(id2, yymmn.);
run;

/* yymm */
data data1;
  id1 = "20230326";
run;

data data2; set data1;
  id2 = input(id1, yymmdd8.);
  id3 = put(id2, yymm.);
run;

/* yymmdd6 */
data data1;
  id1 = "20230326";
run;

data data2; set data1;
  id2 = input(id1, yymmdd8.);
  id3 = put(id2, yymmdd6.);
run;

/* substr */
data data1;
  id1 = "20230326";
run;


data data2; set data1;
  id2 = substr(id1, 1, 4);
  id3 = substr(id1, 5, 2);
  id4 = compress(id2||"-"||id3);
run;

なお、YYYY/MM表記でもSUBSTRと||を用いる必要があります。


/* substr_2 */
data data1;
  id1 = "20230326";
run;


data data2; set data1;
  id2 = substr(id1, 1, 4);
  id3 = substr(id1, 5, 2);
  id4 = compress(id2||"/"||id3);
run;

-!!, SAS, SUBSTR, ||

執筆者:


comment

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

関連記事

【SAS】INTNX関数は指定期間の条件を満たす日付けを返す。その2

今回はINTNX関数について追加で解説します。 過去記事では INTNX関数 の使い方(引数3つ)について解説しました。⇒【SAS】INTNX関数は指定期間の条件を満たす日付けを返す。 | ビジネスイ …

【SAS】SASで良く使うテクニック。その7 「条件付き書式」~差分があるセルに色を付けたい時~【Excel】

今回はSASで良く使うテクニックということで、データセットのコンペアにおいて、差分があるセルに色を付けたい時ときは「条件付き書式」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使う …

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

今回もTRANSPOSEについて解説します。 前回は縦持ち⇒横持ちにする流れで解説してきました。 【SAS】TRANSPOSEは縦持ち、横持ちを変換できる。その1 今回は横持ち ⇒ 縦持ちの流れに沿っ …

【SAS】SASで良く使うテクニック。その5 「SUM関数」~データセットの差分がいくつあるのか数えたい時~【Excel】

今回はSASで良く使うテクニックということで、データセットの差分がいくつあるのか数えたいときは「SUM関数」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その1 E …

【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。その2 再帰的使用

今回はSUBSTR関数の再帰的使用について解説していきます。 /* 再帰的 */ data data1; id1=”123456789″; output; run; data data2; set d …