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】SASで良く使うテクニック。その3 「Ctrl+D」~データセットのオブザベーション数が多いとき~【Excel】

今回はSASで良く使うテクニックということで、データセットのオブザベーション数(行数)が多いときは「Ctrl+D」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その …

【SAS】PUTC関数は文字列に対して出力形式を指定して変換する。

今回はPUTC関数について解説します。 /* putc_1 */ proc format; value point “aaaa”=’Low’ “bbbb”=’High’; run; data data …

【SAS】COMPRESS関数は文字列の空白を削除し、詰める。(COMPRESS関数 その1)

今回はCOMPRESS関数について解説します。 /* compress */ data data1; Id1=1111; Char1=”AA AA”; output; Id1=2222; Char1= …

【SAS】ROUNDは四捨五入して数値を丸める

今回はROUNDについて解説します。 /* 正常形 */ data work.data1; _100 = round(1234.56789, 100); _10 = round(1234.56789, …

【SAS】PUTはSAS日付値をフォーマットを変換して表示する【DATE】【YYMMDD】【DATETIME】【TIME】【TOD】

今回もPUTについて解説します。  前回、PUTは数値型⇒文字型への変換ができると解説しました。(参考:【SAS】PUTは数値型を文字型に変換する | ビジネスイッチ (how-to-bus …