Merge 基本SAS证书示例:合并并输入
这个问题的正确选择是什么?为什么?谢谢:Merge 基本SAS证书示例:合并并输入,merge,sas,Merge,Sas,这个问题的正确选择是什么?为什么?谢谢: 提交以下程序: 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; 数据集中有多少观测值有效。全部 提交程序后? A.1 B.2 C.3 D.5 答案将是B.22个观察值,已
提交以下程序:
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;
数据集中有多少观测值有效。全部
提交程序后?
A.1
B.2
C.3
D.5
答案将是B.22个观察值,已经有3个变量,因此新数据集都将包含EMP_名称或EMP_DEPT列EmpID中都没有的观察值。图书馆实际上是为所有人服务的
该语句确实表明,在合并时只合并EmpID中常见/不存在的观察值。
Emp_N来自第一个数据集,Emp_D来自第二个数据集
希望下面的细节能有所帮助:
那么by子句是否被if子句覆盖?谢谢。在BY声明之后,有一个子集IF声明。因此,只有满足子集IF语句的观测值才会写入输出数据集。
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;
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;