【SAS】1つのDATAステップで複数のデータセットを作成【OUTPUTステートメント】
条件ごとにデータセットを分けたいとき、OUTPUTステートメントを使用すると1つのDATAステップで作成できる。
例えば、未成年者と成年者のデータが混ざったデータセットを、それぞれ分けたいとする。
/*元データ作成*/ data sample1; length id 8. name $10. age 8.; input id name$ age; datalines; 1 Rose 5 2 Nicole 20 3 Stephen 14 4 Teresa 37 5 Brenda 42 ; run;
以下の2つの書き方だと、後者であればコードの冗長が防げる。
- OUTPUTステートメント使用なし
/*OUTPUTステートメントを使用しない例(2つのDATAステップが必要)*/ data minors; set sample1; if .<age<20; run; data majors; set sample1; if 20<=age; run;
- OUTPUTステートメント使用
/*OUTPUTステートメントを使用する例(1つのDATAステップが必要)*/ data minors majors; set sample1; *20歳未満ならデータセットminorsにoutput; if .<age<20 then output minors; *20歳以上ならデータセットmajorsにoutput; if 20<=age then output majors; run;
- 結果は同じ