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
'SAS > Base Programmer' 카테고리의 다른 글
[A00-211, Crambible] SAS Q89 - _all_ (0) | 2017.06.08 |
---|---|
[A00-211, Crambible] SAS Q90 - format (0) | 2017.06.08 |
[A00-211, Crambible] SAS Q87 - date (0) | 2017.06.07 |
[A00-211, Crambible] SAS Q86 - where, % (0) | 2017.06.06 |
[A00-211, Crambible] SAS Q85 - Excel workbook (0) | 2017.06.05 |