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】足し算。その2(SUM関数を用いた計算)

今回はSUM関数を用いた足し算について解説します。  (前回は+演算子を用いた足し算について解説しました。⇒【SAS】足し算。その1(+演算子を用いた計算)) /* sum */ data …

【SAS】FORMATプロシージャはフォーマットルールを定義し、値を書き換える。その2

今回もFORMATプロシージャについて解説します。 前回は値の範囲によって、定義されたフォーマットルールに従い、値を書き換えるという内容でした。 【SAS】FORMATプロシージャはフォーマットルール …

【SAS】DROPで良く問われる文法【SAS Base Programming対策8】

今回もDROPについて解説します。 (対比:KEEP 【SAS】KEEPはカラムの選択に使える。 | ビジネスイッチ (how-to-business.com)) 過去記事ではDROPの使い方について …

【SAS】SASで良く使うテクニック。その11「Ctrl+/」~範囲指定でコメントを入れたい時~【SAS Studio】

今回はSASで良く使うテクニックということで、範囲指定でコメントを入れたい時は、「Ctrl+/」が役に立つ理由を解説していきます。 以下のようにソースコードを準備します。(ソースコードの内容は何でも良 …

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

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