DATA SAS

【SAS】DATAステートメントは複数データセットを出力できる。

投稿日:

今回はDATAステートメントで複数データセットを出力する方法について解説します。


/* data2 data3_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 data3 ; set data1;
  if id1="1111" then output data2;
  else output data3;
run;

よくあるif文で出力先を分岐させる文法です。

/* data2 data3_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 data3 ; set data1;
run;

if文を使わなくても、dataステートメントに複数データセットを設定することができます。

この場合、設定した出力先全てに、同じ内容が出力されます。

当たり前なことなのですが、私は最近まで知りませんでした。(if文とセットで使うものだと思っていました。)

-DATA, SAS

執筆者:


comment

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

関連記事

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

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

【SAS】TIME関数はSAS時間値を取得する。

今回はTIME関数について解説します。 /* time_1 */ data data1; Id1 = time(); run; time()により、SAS時間値を取得する。 /* time_2 */ …

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

今回はWORKライブラリについて解説します。 libnameを使わなくてもデフォルトで存在するライブラリです。 そのため、libnameを使わずにworkライブラリを使用することができます。 /* l …

【SAS】SUMは足し算をする。その1【SQL】

今回はSQLのSUMについて解説します。 /* SUM_1 */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=222 …

【SAS】TRANSPOSEは縦持ち、横持ちを変換できる。その1

今回はTRANSPOSEについて解説します。 /* num char char */ data data1; NO=1111; CHAR=”A”; MOJI=”AAAA”; output; NO=22 …