SAS Base, A00-211 Crambible 

SAS 베이스 자격증 


QUESTION NO: 32

Given the raw data file EMPLOYEE: 

----I----1 0---I----20---I----30
Ruth  39 11
Jose  32 22

Sue  30 33 

John  40 44


The following SAS program is submitted: 

data test;
infile'employee';
input employee_name $ 1-4;

if employee_name = 'Ruth' then input idnum 10-11; 

else input age 7-8;
run;


What value does the variable IDNUM contain when the name of the employee is "Ruth"?


A. 11
B. 22
C. 33
D. (missing numeric value)



참고로 여기서 문제는 이름과 idnum 사이에 공백이 두 칸이 있어야 한다고 하네요.


test 데이타를 만들려고 하는데요. infile을 통해 employee 데이타를 가져옵니다. 

input으로 employee_name이란 변수를 정의하는데, 이름이 문자형으로 ($), 첫번째부터 네번째까지 불러옵니다. 이렇게 input을 사용하게되면 raw 데이타를 한 행씩 불러오게 됩니다. 


employee_name (변수이름)

Ruth  (첫번째 행이 들어왔습니다) 


if employee_name = 'Ruth' then input idnum 10-11; if 구문을 만났습니다. Ruth이니까 then 이하의 구문을 확인해줘야겠죠. 그런데 또 다른 input을 만났습니다. 즉, input으로 idnum이란 변수를 만드는데 그때 10~11자리를 불러오려고 합니다. 지금 input을 두번째 만났으니 두번째 행을 읽어야겠죠. 


employee_name idnum

Ruth   22 


아직 데이타 읽는게 끝나지 않았으니 다시 input 구문으로 올라갑니다. 

input employee_name $ 1-4;

input이 세번째로 보는거니까 raw data의 세번째 행을 봅니다. 

employee_name idnum

Ruth   22 

Sue 


if employee_name = 'Ruth' then input idnum 10-11; 으로 들어오니, Sue 가 Ruth가 아니므로 그 다음줄을 봅니다. else input age 7-8; 또 input을 보네요. 지금 네번째 input을 보는거므로 raw 데이타의 네번째 행을 읽습니다. 


employee_name idnum  age 

Ruth   22 

Sue                   40


위에 최종 output입니다. 






Answer: B 


반응형

+ Recent posts