【发布时间】:2016-07-15 15:32:31
【问题描述】:
当我们这样做时:
data test;
set temp1 temp2;
run;
它是否按列名或列位置匹配 temp1 和 temp2?
我的猜测是列名,但找不到确认。
如果有一个列存在于temp1 而不是temp2,会发生什么情况?
【问题讨论】:
-
请注意,如果您要追加表格,使用 Proc Append 会更快,因为它不会逐行读取表格。
当我们这样做时:
data test;
set temp1 temp2;
run;
它是否按列名或列位置匹配 temp1 和 temp2?
我的猜测是列名,但找不到确认。
如果有一个列存在于temp1 而不是temp2,会发生什么情况?
【问题讨论】:
按名称。不在两个表上的列都存在于输出表上,但来自不存在的源表的行缺少值。这非常容易测试。
data d1;
input var1 $ var2 $ var3;
datalines;
e j 1
e k 2
e l 3
;
run;
data d2;
input var2 $ var1 $ var5;
datalines;
e j 1
e k 2
e l 3
;
run;
data d3;
set d1 d2;
run;
proc print data=d3;
run;
结果:
Obs var1 var2 var3 var5
1 e j 1 .
2 e k 2 .
3 e l 3 .
4 j e . 1
5 k e . 2
6 l e . 3
如果存在变量类型冲突,SAS 将抛出错误或警告。
【讨论】: