SAS中数据集的合并

SAS中数据集的合并,sas,Sas,我有一个相当简单的问题 是否有任何方法可以合并SAS中的$n$数据集,其中$n>2$。我知道如何合并两个数据集 谢谢 gowers您可以使用与两个数据集相同的语法合并多个数据集: data all; merge ds1 ds2 ds3 ...; by some_list_of_variables; run; 如果有多个数据集要合并,则可能需要对列出所有数据集的宏进行修改。可以使用与两个数据集相同的语法合并多个数据集: data all; merge ds1 ds2 ds3 ...; b

我有一个相当简单的问题

是否有任何方法可以合并SAS中的$n$数据集,其中$n>2$。我知道如何合并两个数据集

谢谢


gowers

您可以使用与两个数据集相同的语法合并多个数据集:

data all;
 merge ds1 ds2 ds3 ...;
 by some_list_of_variables;
run;

如果有多个数据集要合并,则可能需要对列出所有数据集的宏进行修改。

可以使用与两个数据集相同的语法合并多个数据集:

data all;
 merge ds1 ds2 ds3 ...;
 by some_list_of_variables;
run;

如果要合并多个数据集,可能需要对列出所有数据集的宏进行更正。

除了提供的代码@itzy外,还可以使用merge语句中的In=选项来标识数据集。这只允许您接受所需的匹配。此外,必须在BY语句中使用通用变量名。您可以包含RENAME=语句来创建一个公共变量,以便在BY语句中使用

(未测试代码)


除了提供的代码@itzy外,还可以使用MERGE语句中的In=选项来标识数据集。这只允许您接受所需的匹配。此外,必须在BY语句中使用通用变量名。您可以包含RENAME=语句来创建一个公共变量,以便在BY语句中使用

(未测试代码)


尽管您已经说过要“合并”数据集,但请注意,merge语句不是唯一的选项。如果您的合并键在多个数据集中有重复项,则使用MERGE语句可能会给出逻辑错误的结果,即使它可以毫无怨言地工作。在这种情况下,您可以使用PROC SQL—我还记得,从SAS 9.1开始,PROC SQL可以更加高效

范例-

proc sql;
select <fieldlist>
from data1 t1, data2 t2, data3 t3, data4 t4
where <join condition>;
quit;
proc-sql;
挑选
来自数据1 t1、数据2 t2、数据3 t3、数据4 t4
哪里
退出

尽管您说过要“合并”数据集,但请注意,merge语句不是唯一的选项。如果您的合并键在多个数据集中有重复项,则使用MERGE语句可能会给出逻辑错误的结果,即使它可以毫无怨言地工作。在这种情况下,您可以使用PROC SQL—我还记得,从SAS 9.1开始,PROC SQL可以更加高效

范例-

proc sql;
select <fieldlist>
from data1 t1, data2 t2, data3 t3, data4 t4
where <join condition>;
quit;
proc-sql;
挑选
来自数据1 t1、数据2 t2、数据3 t3、数据4 t4
哪里
退出