ELSE DO END IF SAS THEN DO

【SAS】IFステートメントは処理を分岐できる。その4~THEN DO, ELSE DO~【END】

投稿日:

今回はIF文の分岐で、複数の命令を実行する方法について、解説していきます。

【併せて読みたい記事】


/* then do_1 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
run;

data data2; set data1;
  if id1 = "1111" then do;
    id4 = "1111";
    id5 = "1111";
  end;
  else if id1 = "2222" then do;
    id4 = "2222";
    id5 = "2222";
  end;
  else do;
    id4 = "3333";
    id5 = "3333";
  end;
run;
  • then do~end, else do~endを使う事で、複数の命令文を実行できる。
  • 最初のifステートメントがTRUEであるため、id4 = “1111” id5=”1111″となる。

/* then do_2 */
data data1;
 id1="2222"; id2="2222"; id3="2222";
   output;
run;

data data2; set data1;
  if id1 = "1111" then do;
    id4 = "1111";
    id5 = "1111";
  end;
  else if id1 = "2222" then do;
    id4 = "2222";
    id5 = "2222";
  end;
  else do;
    id4 = "3333";
    id5 = "3333";
  end;
run;
  • then do~end, else do~endを使う事で、複数の命令文を実行できる。
  • 第2文のelse ifステートメントがTRUEであるため、id4 = “2222” id5=”2222″となる。

/* then do_3 */
data data1;
 id1="3333"; id2="3333"; id3="3333";
   output;
run;

data data2; set data1;
  if id1 = "1111" then do;
    id4 = "1111";
    id5 = "1111";
  end;
  else if id1 = "2222" then do;
    id4 = "2222";
    id5 = "2222";
  end;
  else do;
    id4 = "3333";
    id5 = "3333";
  end;
run;
  • then do~end, else do~endを使う事で、複数の命令文を実行できる。
  • 第3文のelse doステートメントがTRUEであるため、id4 = “3333” id5=”3333″となる。

/* end無し_1 */
data data1;
 id1="1111"; id2="1111"; id3="1111";
   output;
run;

data data2; set data1;
  if id1 = "1111" then do;
    id4 = "1111";
    id5 = "1111";
  else if id1 = "2222" then do;
    id4 = "2222";
    id5 = "2222";
  else do;
    id4 = "3333";
    id5 = "3333";
run;
  • then do~end, else do~endを使う事で、複数の命令文を実行できる。
  • DOブロックに対して、ENDで閉じてないとエラーとなる。

-ELSE DO, END, IF, SAS, THEN DO

執筆者:


comment

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

関連記事

【SAS】CALL SYMPUTは関数を用いてマクロ変数の代入ができる。

今回はCALL SYMPUTについて解説します。 /*その1*/ data data1; kyo = today(); run; today()は本日の日付をSAS日付で取得する。 /*その2*/ d …

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

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

【SAS】PROC PRINTTO LOGはログをファイルとして出力する。【NEW】

今回はPROC PRINTTO LOGについて解説します。 /* log_1 */ proc printto log = “/home/xxxxxxxxxx/sasuser.log” new; run …

【SAS】COMPAREはデータセットの比較に便利

今回はCOMPAREについて解説します。 /* 正常形 */ data data1; id=”A”; chiku=”SHINJUKU”; output; id=”B”; chiku=”ICHIGAYA …

【SAS】FIRST, LAST↔SORT NODUPKEYの変換

今回はfirst, last↔SORT NODUPKEYの変換について解説します。 結論を先に書くと、変換できる場合、変換できない場合とがあります。 /*sort1*/ data dat …