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

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

【SAS】MEANSも集計に便利(デフォルトで結果を出力)【NOPRINT】

今回はMEANSについて解説します。 似た文法でSUMMARYプロシージャがあります。 【SAS】SUMMARYは集計に便利 今回のMEANSプロシージャも集計を行うのですが、こちらはデフォルトで「結 …

【SAS】UPCASE関数は文字列を大文字化する。

今回はUPCASE関数について解説します。 /* upcase */ data data1; Id1=1111; char1=”US”; char2=”aaa”; output; Id1=2222; …

【SAS】INTCK関数を使って年齢計算をする。【PUT】【SUBSTR】【IF】

今回はINTCK関数を使って、年齢計算を行う方法について解説していきたいと思います。 併わせて読みたい記事 (INTCK:【SAS】INTCK関数は指定された区間に指定された単位を何回跨ぐか数える。 …

【SAS】INTCK関数は指定された区間に指定された単位を何回跨ぐか数える。

data data1; Id1 =intck(“YEAR”, ’31Dec2019’d, ‘1Jan2020’d); run; 2019/12/31~2020/1/1の間に年を何回跨ぐか数える。 /* …