SAS Base Programmer 練習問題1
以下のSASプログラムがサブミットされたとする。
data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000; else if years_service gt 10 then amount = 2000; else amount = 0; amount_per_year = years_service / amount; run;
years_service = 1のとき、AMOUNT_PER_YEARの値は次のどれになるか
A. 0
B. 1000
C. 2000
D. .(欠損値)
出典はこちら
答え: D (要反転)
years_service = 1 のとき、amountの値は0となる。
amount_per_year = years_service / amount = 1 / 0 となるが、
0による除算は実行時エラーとなり、欠損値が結果として設定される。