!! 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】SUMは足し算をする。その1【SQL】

今回はSQLのSUMについて解説します。 /* SUM_1 */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=222 …

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

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

【SAS】列名と列ラベルの表示を切り替える方法【LABEL】

今回はデータセットにおける列名と列ラベルの表示を切り替える方法を解説します。 /* label */ data data1; attrib Id1 length = 8 label = “Id1111 …

【SAS】TIME関数はSAS時間値を取得する。

今回はTIME関数について解説します。 /* time_1 */ data data1; Id1 = time(); run; time()により、SAS時間値を取得する。 /* time_2 */ …

【SAS】PUTはSAS日付値をフォーマットを変換して表示する【DATE】【YYMMDD】【DATETIME】【TIME】【TOD】

今回もPUTについて解説します。  前回、PUTは数値型⇒文字型への変換ができると解説しました。(参考:【SAS】PUTは数値型を文字型に変換する | ビジネスイッチ (how-to-bus …