ATTRIB RENAME SAS

【SAS】ATTRIBとRENAMEを同時に使うときの注意点

投稿日:

今回はATTRIBとRENAMEを同時に使うときに注意するべきポイントについて解説していきます。

SAS日付となっているid1をddMONyyyy形式にして、id4とするケースを仮定します。

結論:ATTRIBはRENAMEの変更先にできないけど、代入先にはできる。


/* attrib_1 */
data data1;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
run;


data data2; set data1;
  attrib id4 format=date9. ;
  rename id1 = id4;
run;
  • ATTRIBをRENAMEの変更先にしてしまうとWARNINGとなる。
  • さらにid4は定義したはずのddMONyyyy形式になっていない。

/* attrib_2 */
data data1;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
run;


data data2; set data1;
  attrib id4 format=date9. ;
  id4 = id1;
run;

  • ATTRIBを代入先にすれば、正常に動く。
  • id4は定義したddMONyyyy形式になっている。

/* attrib_3 */
data data1;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
 id1="22229"; id2="22229"; id3="22229";
   output;
run;


data data2; set data1;
  attrib id4 format=date9. ;
  id4 = id1;
  drop id1;
  rename id4 = id1;
run;
  • ATTRIBを代入先にすれば、正常に動く。
  • id4は定義したddMONyyyy形式になっている。
  • もともとあったid1をddMONyyyy形式にする場合は、dropとrenameで実現できる。

-ATTRIB, RENAME, SAS

執筆者:


comment

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

関連記事

【SAS】%MACROはマクロを定義することができる。その3 マクロには引数を設定できる。【%MEND】

今回はマクロに引数を設定する方法について解説していきたいと思います。(事前に読んでおきたい記事:【SAS】%MACROはマクロを定義することができる。【%MEND】 | ビジネスイッチ (how-to …

【SAS】RENAMEの使い方を解説

今回はRENAMEの使い方を解説していきます。 (参考:【SAS】ATTRIBとRENAMEを同時に使うときの注意点 | ビジネスイッチ (how-to-business.com)) /* renam …

【SAS】ARRAYステートメントは配列を設定することができる。

今回はarrayステートメントについて解説します。 /* array */ data data1; array hairetsu(3) Id1 Id2 Id3; hairetsu(1) = 1111; …

【SAS】SUBSTR関数を使って右から文字列を切り取る方法について解説【LENGTHN】

今回はSUBSTR関数を使って右から文字列を切り取る方法について解説します。 (参考:【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。 | ビジネスイッチ (how-to-busine …

【SAS】%SYSFUNC関数はデータステップの外でも関数を使えるようにする。その2(%LETステートメント中の挙動)

今回は%SYSFUNC関数について、%LETステートメント中の挙動に着目して解説します。 /* substr */ %let a = substr(123456789, 2, 4); data dat …