在 SAS 中合并两个数据集。如何选择合并数据的变量?

Merge two datasets in SAS. How to choose the variables of the merged data?

我有两个数据集,我正在尝试合并它们,就像我在 SQL.

上使用 lef join 方法一样。

我创建了这段代码:

Data final_dataset;
merge table_1 (in=a) table_2; 
if a=1;
keep Var1 Var2 Var3 Var4 Var5;
run; 

问题是在两个数据集中我都有同名的变量。例如,Var1Var2 都在 table_1table_2 中,但我希望合并后的数据只有变量 Var1Var2来自 table_1。我该怎么做?

如果它是 proc sql 代码将是这样的:

proc sql;
create table final_dataset
as select 
A.Var1 A.Var2 B.Var3 B.Var4 B.Var5
from table_1 as A left join table_2 as B
on A.Var1 = B.Var1;

但我正在尝试学习 SAS 语言,我想知道是否有一种方法可以用这种语言做我想做的事情。

通常要合并您需要 BY 变量。 如果您不想要来自其中一个数据集的变量,则只需使用 DROP= 或 KEEP= 数据集选项来消除它们。如果你想保留两者的变量但作为单独的变量,请使用 RENAME= 数据集选项。

data final_dataset;
   merge table_1 (in=in1 keep=var1 var2)
         table_2 (keep=var1 var3 var4 var5)
   ;
   by var1;
   if in1;
run;