这个问题的正确选择是什么?为什么?感谢:
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
提交以下计划:
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;
数据集WORK.ALL中有多少观察结果 提交程序后? A. 1 B. 2 C. 3 D. 5
答案 0 :(得分:0)
答案将是 B.2 已经有3个变量进行了2次观察,因此新数据集 ALL 将观察到EMP_NAME或EMP_DEPT列EmpID中没有的内容。图书馆实际上是所有人的工作。
此语句确实显示合并时仅合并EmpID中不公共/存在的观察。 Emp_N来自第一个数据集,Emp_D来自第二个数据集。
by Empid;
if (Emp_N and not Emp_D) or (Emp_D and not Emp_N);
希望它有助于详细说明:
title "stackoverflow merge EMP_DEPT";
data work.EMP_NAME;
input Name $ EmpID;
datalines;
Jill 1864
Jack 2121
Joan 4698
John 5463
;
run;
proc print data = work.EMP_NAME;
run;
title "stackoverflow merge EMP_DEPT";
data work.EMP_DEPT;
input EmpID Department $ ;
datalines;
2121 Accounting
3567 Finance
4698 Marketing
5463 Accounting
;
run;
proc print data = work.EMP_DEPT;
run;
*merge;
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;
proc contents data=work.ALL;
run;
proc print data = work.ALL;
run;