SAS BASE Q12. do / Q21과 비교
QUESTION NO: 12
The following SAS program Is submittad:
data work.sales;
do year = 1 to 5;
do month=1 to 12;
x+1;
output;
end;
end;
run;
How many observations are written the WORK SALES data set?
A. 0
B. 1
C. 5
D. 60
Answer: D
# 문제 풀이
- year=1 (-> month=1 -> ... -> month=12) -> year=2 (-> month=1 -> ... -> month=12) -> year=3 ... 이런 식으로 생각하기.
x는 정의한게 없으므로 0부터 시작한다. x+1이므로 맨 처음 칸에는 1이 들어감.
data work.sales;
do year = 1 to 5;
do month=1 to 12;
x+1;
end;
end;
run;
- Q21 : output이 없으므로 overwriting(덮어쓰기)가 됨.
data work.sales;
do year = 1 to 5;
do month=1 to 12;
x+1;
end;
output;
end;
run;
- year=1 (-> month=1 -> ... -> month=12) -> year=2 (-> month=1 -> ... -> month=12) -> year=3 ... 이런 식이지만, 괄호 안의 month는 overwriting이 된다.
do month 구문이 끝나고 output이 있기 때문에, do month 구문은 overwriting 되고 do year 구문은 output이 적용된다.
do month에서 12에서 1을 더 증가시킨 13이 된 후 구문을 종료시킨다.
do year에서는 output이 적용되어 5에서 구문을 종료시킨다. (output이 구문을 종료시킴)
이 부분은 그냥 외워야 될 듯 하다....