SAS SUBSTR

【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。

投稿日:2022年4月25日 更新日:

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


/* 正常形 */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 1, 5);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。

/* あいうえおかきくけこ */
data data1;
  id1="あいうえおかきくけこ";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 1, 5);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 日本語だと表示がおかしくなる。

/* 0, 5 */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 0, 5);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 第2引数に0を設定すると正しく処理されない。

/* 12, 17 */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 12, 17);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 第2引数に最大文字数より大きな値を入れると、id2は欠損値になる。

/* 1, 12 */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 1, 12);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 第3引数が最大文字数より大きくても正しく処理される。

/* 123456789 */
data data1;
  id1=123456789;
    output;
run;


data data2; set data1;
  id2 = substr(id1, 1, 5);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • id1が数値型だと正しく処理されない。

/* "1", "5" */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, "1", "5");	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 第2引数、第3引数が文字型でも正しく表示される。

/* 1.1, 5 */
data data1;
  id1="123456789";
    output;
run;


data data2; set data1;
  id2 = substr(id1, 1.1, 5);	
run;

  • substr関数は設定した字数分の文字列を切り取る。substr(カラム, 開始位置, 文字数)
  • 開始位置は1スタート。
  • 第2引数が1.1でも処理は通る。(1~5を取る。)

-SAS, SUBSTR

執筆者:


comment

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

関連記事

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

今回はSCAN関数について解説します。 /* “1111”,”2222″,”3333″ */ data data1; Id1=”1111″,”2222″,”3333″; run; data data2 …

【SAS】TRANSTRN関数は指定した文字を別の文字に変換する。

/* a */ data data1; Id1=”abcd”; Id2=”ABCD”; output; Id1=”abcd”; Id2=”ABCD”; output; Id1=”abcd”; Id2= …

【SAS】FIRST, LASTは重複を削除しユニーク化する

今回はfirst, lastについて解説します。 /*first last1*/ data data1; 番号=”1111″; 日付=”20210331″; output; 番号=”1111″; 日付 …

【SAS】SASで良く使うテクニック。その2 「Ctrl+R」~データセットの列数が多いとき~【Excel】

今回はSASで良く使うテクニックということで、データセットの列数が多いときは「Ctrl+R」が役に立つ理由を解説していきます。 データセットのコンペアを行う場面を想定します。 先に以下の2記事を読んで …

【SAS】SAS Studioのフィルター機能の使い方を解説 その1 ~文字型~

今回はSAS Studioのフィルター機能について解説します。 /* 文字型 */ data data1; id1=”1111″; id2=”1111″; id3=”1111″; output; id …