IF SAS SAS Base Programming WHERE

【SAS】計算で求められた変数に対するIFとWHEREの振舞いの違い【SAS Base Programming対策1】

投稿日:2021年12月20日 更新日:


/* where id3 */
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;
  id4=id3;
  where id3 ge 2222;
run;

  • whereステートメントによる暗黙的output

/* where id4 */
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;
  id4=id3;
  where id4 ge 2222;
run;

  • whereステートメントによる暗黙的output
  • whereステートメントの場合、data1に元々無かったid4は条件に使用できない。

/* if id3 */
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;
  id4=id3;
  if id3 ge 2222;
run;

  • ifステートメントによる暗黙的output

/* if id4 */
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;
  id4=id3;
  if id4 ge 2222;
run;

  • ifステートメントによる暗黙的output
  • ifステートメントの場合、data1に元々無かったid4も条件に使用できる。

-IF, SAS, SAS Base Programming, WHERE

執筆者:


comment

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

関連記事

【SAS】SASで良く使うテクニック。その4 「参照元のトレース」~データセットの差分がある箇所を探すのに便利~【Excel】

今回はSASで良く使うテクニックということで、データセットの差分がある箇所を探すときは「参照元のトレース」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その1 Ex …

【SAS】SASUSERライブラリの性質について解説

今回はSASUSERライブラリについて解説します。(対比参考:【SAS】WORKライブラリの性質について解説 | ビジネスイッチ (how-to-business.com)) libnameを使わなく …

【SAS】INTNX関数は指定期間の条件を満たす日付けを返す。

今回はINTNX関数について解説します。 /* intnx_1 */ data data1; Id1 = intnx(“YEAR”,’16jan2022’d,1); format Id1 yymmdd …

【SAS】FREQプロシージャは頻度集計とクロス集計をする その2【LIST】【CROSSLIST】【NOROW】【NOCOL】

今回はFREQプロシージャにオプションを用いた場合について解説します。  FREQプロシージャの基本的な使い方については過去記事で解説しています。⇒【SAS】FREQプロシージャは頻度集計とクロス集計 …

【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。その2 再帰的使用

今回はSUBSTR関数の再帰的使用について解説していきます。 /* 再帰的 */ data data1; id1=”123456789″; output; run; data data2; set d …