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】SASで日付を扱う(年月日)【”d】 【YEAR()】【MONTH()】【DAY()】【MDY()】

今回は日付を用いた様々な操作について解説します。  /*”d*/ data data1; Id1 = ’03jan2022’d; run; ’03jan2022’d …

【SAS】「引用符で囲まれた文字列の後の識別子の意味は、将来のSASリリースで変わる可能性があります。」の対処法【NOTE】

今回は、 「引用符で囲まれた文字列の後の識別子の意味は、将来のSASリリースで変わる可能性があります。」 とログメッセージが出た時の対処法について解説します。 /* メッセージ_1 */ data d …

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

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

【SAS】DROPはデータセットから変数を削除する

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

【SAS】LABELオプションは変数名ではなく、ラベル名を出力する。【PRINTプロシージャ】【SAS Base Programming対策2】

今回はLABELオプションについて解説します。 SAS Base Programmingの四択問題でも出されそうな感じです。 /* label */ data data1; attrib Id1 le …