Sas:如何基于两个变量合并数据集
您可以使用以下基本语法根据两个变量的匹配来合并 SAS 中的两个数据集:
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
此特定示例根据名为ID和Store 的变量合并名为data1和data2 的数据集,并仅返回两个数据集中都存在值的行。
以下示例展示了如何在实践中使用此语法。
示例:根据两个变量合并 SAS 中的数据集
假设我们在 SAS 中有以下数据集,其中包含有关公司销售人员的信息:
/*create first dataset*/
data data1;
inputStoreID $;
datalines ;
1A
1B
1 C
2A
2C
3A
3 B
;
run ;
/*view first dataset*/
title "data1";
proc print data = data1;
假设我们有另一个数据集,其中包含每个员工在不同商店的销售信息:
/*create second dataset*/
data data2;
input Store ID $Sales;
datalines ;
1 to 22
1 B 25
2 to 40
2 B 24
2 C 29
3 to 12
3 B 15
;
run ;
/*view second dataset*/
title "data2";
proc print data = data2;
我们可以使用以下合并语句根据ID和Store列中的匹配值来合并两个数据集,然后仅返回两列中都存在值的行:
/*perform merge*/
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
生成的数据集返回ID和Store列值匹配的行。
注意:您可以在此处找到 SAS merge语句的完整文档。
其他资源
以下教程解释了如何在 SAS 中执行其他常见任务: