IF SAS WHERE

【SAS】IF文はデータ読み込み後にフィルター、WHERE文はデータ読み込み時にフィルターをする。

投稿日:

今回は、データ入力に着目して、IF文とWHERE文の違いを解説します。


/* if */
data data1;
  Id1=1111; Char1="AAAA";
    output;
  Id1=2222; Char1="BBBB";
    output;
  Id1=3333; Char1="CCCC";
    output;
  Id1=4444; Char1="DDDD";
    output;
run;


data data2; set data1;
  if Id1=1111;
run;
  1. IF文は全てのオブザベーションを読み込む。(4オブザベーション読み込み)
  2. 読み込み後、フィルターを掛け、出力する。(1オブザベーション出力)

/* where */
data data1;
  Id1=1111; Char1="AAAA";
    output;
  Id1=2222; Char1="BBBB";
    output;
  Id1=3333; Char1="CCCC";
    output;
  Id1=4444; Char1="DDDD";
    output;
run;


data data2; set data1;
  where Id1=1111;
run;
  • WHERE文は読み込み時にフィルターを掛ける。(1オブザベーション読み込み)
  • そのまま出力する。(1オブザベーション出力)

-IF, SAS, WHERE

執筆者:


comment

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

関連記事

【SAS】ORDER BY句無しで抽出した際の出力順【SQL】

この記事の要約:「ORDER BYを使わない場合、SQLで抽出した際の並び順は保証されない」 SQL文で抽出を行った際に、困ったことが起きました。 同じPG文なのに1回目と2回目で出力結果に違いがある …

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

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

【SAS】SASで良く使うテクニック。その10 「矩形選択」~インデントを入れたい時など~【サクラエディタ】

今回はSASで良く使うテクニックということで、ソースコードにインデントを挿入したい時は、「矩形選択」が役に立つ理由を解説していきます。 「矩形選択」は、インデントの挿入以外にも、同じ文字数分削除をした …

【SAS】SCAN関数は区切り文字を認識し、一部を抜き出せる。

今回はSCAN関数について解説します。 /* “1111”,”2222″,”3333″ */ data data1; Id1=”1111″,”2222″,”3333″; run; data data2 …

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

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