给定原始数据文件EMPLOYEE:
----I----10---I----20---I----30
Ruth 39 11
Jose 32 22
Sue 30 33
John 40 44
提交以下SAS程序:
data test;
infile 'employee';
input employee_name $ 1-4;
if employee_name = 'Ruth' then input idnum 10-11;
else input age 7-8;
run;
当员工的姓名是“露丝”时,变量IDNUM包含什么值?
A. 11
B. 22
C. 33
D. (missing numeric value)
答案应该是22(B)。有人可以解释为什么IDNUM的价值是22而不是11?我不明白条件语句如何跳过Ruth的11值并继续到22,这是Jose的值。
答案 0 :(得分:3)
答案是22,因为一旦SAS读取一行,它就会移动到下一行数据。因此,当调用第二个输入语句时,它会读取下一行,而不是当前行。
要保持同一行,您需要@或@@,具体取决于您正在寻找的功能,这在INPUT语句here中有记录。
@保存当前数据步骤的行,它在RUN语句处重置。 @@持有跨越RUN语句的行以进行多次迭代。