KEEP SAS

【SAS】KEEPはカラムの選択に使える。

投稿日:

今回はKEEPについて解説していきたいと思います。

DROPと対になる感じで、

DROPが指定したカラムを捨てるのに対し、KEEPは指定したカラムのみ残す動きを取ります。

(参考「DROP」:【SAS】DROPはデータセットから変数を削除する | ビジネスイッチ (how-to-business.com)

(参考「DROPオプション」:【SAS】DROPオプションの位置による処理の違い | ビジネスイッチ (how-to-business.com)

KEEPは

  • ステートメント
  • オプション

の2つで使えます。

まずはステートメント。(個人的にはこちらで使う事の方が多いと思います。)


/* ステートメント */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
 id1="2222"; id2="2222"; id3="2222";
   output;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2; set data1;
  keep id1 id2;
run;
  • KEEPステートメントにより、id1,id2のみ残る。(id3は捨てられる。)

続いてオプションによるKEEP。(個人的には、オプションで使う事はあまり無いと思います。)


/* オプション_1 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
 id1="2222"; id2="2222"; id3="2222";
   output;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2; set data1(keep=id1 id2);
  keep id1 id2;
run;
  • KEEPオプションにより、id1,id2のみ残る。(id3は捨てられる。)

/* オプション_2 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
 id1="2222"; id2="2222"; id3="2222";
   output;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2(keep=id1 id2); set data1;
  keep id1 id2;
run;
  • KEEPオプションにより、id1,id2のみ残る。(id3は捨てられる。)

/* オプション_3 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
 id1="2222"; id2="2222"; id3="2222";
   output;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2; set data1(keep=id1 id2);
  id4 = "3333";
run;
  • KEEPオプションにより、入力データのid1,id2のみ残る。(id3は捨てられる。)
  • KEEPの選択後、id4が与えられるので、id4が出力される。

/* オプション_4 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
 id1="2222"; id2="2222"; id3="2222";
   output;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2(keep=id1 id2); set data1;
  id4 = "3333";
run;
  • KEEPオプションにより、出力データのid1,id2のみ残る。(id3,id4は捨てられる。)
  • id4が与えられた後、KEEPによる選択が行われるため、id4は出てこない。

このようにオプションでkeepを使用すると、使用箇所によって挙動が変わるので、

特にオプションで使う理由が無ければ、ステートメントで使用した方が無難だと思います。

-KEEP, SAS

執筆者:


comment

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

関連記事

【SAS】TRANSTRN関数は指定した文字を別の文字に変換する。その2 再帰的使用

今回はTRANSTRN関数の再帰的使用について解説していきます。 (参考:【SAS】TRANSTRN関数は指定した文字を別の文字に変換する。 | ビジネスイッチ (how-to-business.co …

【SAS】足し算。その2(SUM関数を用いた計算)

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

【SAS】%SYSFUNC関数はデータステップの外でも関数を使えるようにする。

今回は%SYSFUNC関数について解説します。 /* sysfunc_1 */ %put %sysfunc(substr(123456789, 2, 4)); %sysfuncにより、関数をデータステ …

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

今回はYYYYMMDD表記の年月日をYYYY-MM表記にしたいと思います。 結論:SUBSTRと||を使います。 (SUBSTR:【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。 | …

【SAS】ROUNDは四捨五入して数値を丸める

今回はROUNDについて解説します。 /* 正常形 */ data work.data1; _100 = round(1234.56789, 100); _10 = round(1234.56789, …