我正在尝试使用 proc sql - union
连接两个表,其中某些变量对于每个表都是唯一的。有没有办法在不使用 NULL
占位符变量的情况下执行此操作?基本上相当于下面的数据步骤。
data total;
set t1 t2;
run;
下面显示了我正在尝试做的一个简单示例。
data animal;
input common $ Animal $ Number;
datalines;
a Ant 5
b Bird .
c Cat 17
d Dog 9
e Eagle .
f Frog 76
;
run;
data plant;
input Common $ Plant $ Number;
datalines;
g Grape 69
h Hazelnut 55
i Indigo .
j Jicama 14
k Kale 4
l Lentil 88
;
run;
proc sql;
(select animal.*, '' as plant from animal)
union all corresponding
(select plant.*, '' as animal from plant)
;
quit;
我希望能够运行 proc sql
,并且必须在 中创建
语句。plant
和 animal
变量select
最佳答案
您需要外部联合
,而不是联合所有
。这符合您的预期(保留任一数据集中的所有变量)。请参阅Howard Schreier's excellent paper on SQL set theory了解更多信息。
proc sql;
create table test as
select * from animal
outer union corr
select * from plant
;
quit;
关于sas - proc sql与不同变量的联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675771/