我有两个数据集,比如A& B和他们有共同的变量。我需要合并A& B由共同变量组成。请建议我该怎么做。
答案 0 :(得分:1)
这是一个入门级问题,你会发现答案只是在谷歌上搜索。 无论如何,你可以使用merge语句,请记住: 1)通过您将用作每个数据集的合并键的变量进行事先排序 2)请记住,两个数据集应该具有相同的名称,性质和长度,用于将用作合并键的变量。 3)还要记住,如果在两个数据集中都有变量具有相同的名称,但这些变量不能用作合并键,则在输出数据集中,只有一个数据集中的变量,如果它和,则重命名其中一个数据集。 #39;是你的情况。
代码将是
proc sort data=A; by mergekey1 mergekey2; run; /*sorting A dataset by mergekeys, please add merge key to the list*/
proc sort data=B; by mergekey1 mergekey2; run; /*same for B dataset*/
data want;
merge A B;
by mergekey1 mergekey2;
run;
答案 1 :(得分:0)
你真的应该提供一些更多的信息,比如每张桌子的记录布局以及你最终想要的内容以及你已经尝试过的内容。那说你可以使用proc sql如下:
proc sql;
create table new_data as
select a.*,b.*
from table1 as a
inner join
table2 as b
on a.common_var = b.common_var;
quit;
请注意,如果a和b具有公共命名变量,则表1中的变量将被覆盖。如果你想保留两组变量,你需要做:
select a.*,b.var1 as bvar1,b.var2 as bvar2 ....
此答案假定您有一个可以合并的变量。如果你不想,你可能想看看proc merge。