Sas:如何基于两个变量合并数据集


您可以使用以下基本语法根据两个变量的匹配来合并 SAS 中的两个数据集:

 data final_data;
  merge data1(in=a) data2(in=b);
  by ID Store;
  if a and b;
run ;

此特定示例根据名为IDStore 的变量合并名为data1data2 的数据集,并仅返回两个数据集中都存在值的行。

以下示例展示了如何在实践中使用此语法。

示例:根据两个变量合并 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;

我们可以使用以下合并语句根据IDStore列中的匹配值来合并两个数据集,然后仅返回两列中都存在值的行:

 /*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;

生成的数据集返回IDStore列值匹配的行。

注意:您可以在此处找到 SAS merge语句的完整文档。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS:如何执行一对多合并
SAS:如何在合并语句中使用 (in=a)
SAS:如果A不是B,如何合并

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注