SAS Base, A00-211 Crambible 

SAS 베이스 자격증


QUESTION NO: 88

Given the SAS data set WORK.EMP_NAME

Name EmpID
Jill 1864 

Jack 2121 

Joan 4698 

John 5463 


Given the SAS data set WORK.EMP_DEPT: 

EmpID Department

2121 Accounting
3567 Finance
4698 Marketing
5463 Accounting


The following program is submitted: 

data WORK.ALL;

merge WORK.EMP_NAME(in=Emp_N) WORK.EMP_DEPT(in=Emp_D);
by Empid;
if (Emp_N and not Emp_D) or (Emp_D and not Emp_N); 

run;


How many observations are in data set WORK.ALL after submitting the program?

A. 1 

B. 2 

C. 3 

D. 5


두개의 데이타, WORK.EMP_NAME, WORK.EMP_DEPT가 있는데요. 이 두개의 데이타를 합쳐서 (merge) ALL이란 새로운 데이타를 만들려고 합니다. 이 새롭게 만들어진 데이터의 observation 몇개가 되는 찾는 문제입니다. 


merge WORK.EMP_NAME(in=Emp_N) WORK.EMP_DEPT(in=Emp_D);
by Empid;

기준변수 Empid로 두개의 데이타를 합치는데요. WORK.EMP_NAME이 기준으로 같은 EmpID 같은 값으로 데이터가 들어가게 됩니다. 


Name EmpID Department 
Jill 1864      

Jack 2121     Accounting 

         3567    Finance 

Joan 4698     Marketing 

John 5463     Accounting 


위에서 초록색과 파란색으로 구분지었는데요. 이처럼 (in=Emp_N) & (in=Emp_D)여 역할은, 데이타가 합칠때 어떤 데이타가 어디에서 왔는지 구분하기 위해서 pdv에서만 생성됩니다. 아웃풋에서는 보여지지않고요. 



if (Emp_N and not Emp_D) or (Emp_D and not Emp_N); 

이 말은Emp_N  and not Emp_D  이 말은 Emp_N = 1 그리고 Emp_D = 0 을 뜻합니다. 

반대로 Emp_D and Emp_N 경우 Emp_D=1 그리고 Emp_N= 1을 뜻합니다. 


다시말해, merged된 데이터의 각 observation에서 기존 두 데이타에서 각각 observation이 missing value없이 잘 합쳐진게 아니라, 한쪽 데이타에는 있고, 한쪽 데이타에는 없는걸 찾으란 얘기입니다. 우에 표 보면, 첫번째는 Name, EmpID만 있고요. Department가 없죠. 세번째 경우, EmpID, Department는 있지만 Name은 없습니다. 얘네들을 말하게 됩니다.



Answer: B 


반응형

+ Recent posts