SAS如何匹配set语句中的列
How does SAS match columns in a set statement
当我们这样做时:
data test;
set temp1 temp2;
run;
是否按列名或列位置匹配 temp1
和 temp2
?
我猜是列名,但找不到确认。
如果 temp1
中存在而不是 temp2
中的列会怎样?
按名字。不在两个 table 上的列都存在于输出 table 上,但缺少来自源 table 的行的值,但它们不存在。这超级容易测试。
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 将抛出错误或警告。
当我们这样做时:
data test;
set temp1 temp2;
run;
是否按列名或列位置匹配 temp1
和 temp2
?
我猜是列名,但找不到确认。
如果 temp1
中存在而不是 temp2
中的列会怎样?
按名字。不在两个 table 上的列都存在于输出 table 上,但缺少来自源 table 的行的值,但它们不存在。这超级容易测试。
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 将抛出错误或警告。