SAS Base Programmer 練習問題16
DATAステップでデータエラーとなった場合の挙動で正しいものは次のどれか
A. エラーとなったところでDataステップが中断し、SASデータセットは作成されない
B. エラー内容のnoteがSASログに出力され、Dataステップの実行は継続される
C. 不正なデータレコードが別のSASファイルに保存されたという内容のnoteが出力される
D. エラーとなったところでDataステップが中断し、そこまでに処理したオブザベーションを含むデータセットが作成される
出典はこちら
答え: B (要反転)
エラーのタイプによって継続して実行を行う場合と、中断される場合とに分かれる。データエラーは前者のタイプ。
例えば以下のようなDataステップはデータエラーとなる。
data temp; input num; datalines; 1 2 3 4 a 5 6 7 8 ; run;
数値であるべきデータにaが入っている。
これを実行すると
NOTE: numに対して、無効なデータが行32カラム1-1にあります。
のようなnoteがSASログに出力されるが
Obs | num |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | . |
6 | 5 |
7 | 6 |
8 | 7 |
9 | 8 |
以降のオブザベーションは継続して実行され、データセットが作成される。
一方、以下のようなシンタックスエラーではDataステップの実行が中断される
data temp; input num; format num = 2.; datalines; 1 2 3 4 a 5 6 7 8 ; run;
formatステートメントに不要な'='が入っている。
これを実行すると
NOTE: エラーが発生したため、このステップの処理を中止しました。 WARNING: データセットWORK.TEMPは未完成です。このステップは、 0オブザベーション、1変数で停止しました。