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】COALESCEはNULLを数字に置き換える

今回はCOALESCEについて解説します。 /*coalesce 正常形*/ data data1; id=”A”; chiku=1111; output; id=”B”; chiku=2222; o …

【SAS】OUTPUTとDELETEの「明示的な使い方」「暗黙的な使い方」

今回はOUTPUTとDELETEにスポットを当てていきたいと思います。 /* output, delete無し */ data data1; Id1=1111; Char1=”AAAA”; outpu …

【SAS】INPUTステートメントは再帰的に型変換ができない。

今回はINPUTステートメントの再帰的な型変換について解説します。 (なお、通常のINPUT型変換の使い方は以下の記事で解説しています。⇒【SAS】INPUTは文字型を数値型に変換する) /*再帰的型 …

【SAS】LIBNAMEステートメントはExcelファイルをライブラリとして割り当てることができる。【SAS Base Programming対策5】

今回はLIBNAMEステートメントを用いてExcelファイルをライブラリ参照する方法について触れていきます。 SAS Base Programmingの試験を2回受験しましたが、2回ともExcelファ …

【SAS】足し算。その1(+演算子を用いた計算)

今回は+演算子を用いた足し算について解説します。  /* + */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; I …