如何在 sas 中执行一对多合并


您可以使用以下语法在 SAS 中执行一对多合并:

 data final_data;
  merge data_one data_many;
  byID ;
run ;

此特定示例通过在名为ID 的变量上合并名为data_onedata_many 的数据集来创建一个名为Final_data的新数据集。

data_one数据集中,每个唯一 ID 值仅出现一次。

data_many数据集中,每个唯一 ID 值出现多次。

这称为一对多合并。

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

示例:SAS 中的一对多合并

假设我们有以下名为data_one的数据集,其中包含有关公司销售人员的信息:

 /*create dataset*/
data data_one;
    inputIDGender $;
    datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;

/*view dataset*/
proc print data = data_one; 

请注意,每个唯一 ID 值在数据集中仅出现一次。

现在假设我们有另一个名为data_many的数据集,其中包含有关每个卖家在不同地点的销售额的信息:

 /*create dataset*/
data data_many;
    input Store ID $Sales;
    datalines ;
1 to 22
1 B 25
1 C 20
2 to 14
2 B 23
3 to 10
4 to 15
4 B 29
5 to 16
5 C 22
;
run ;

/*view dataset*/
proc print data = data_many; 

请注意,每个唯一 ID 值都会出现多次。

我们可以使用以下语法使用这些数据集执行一对多合并:

 /*create new dataset using one-to-many merge*/
data final_data;
  merge data_one data_many;
  byID ;
run ;

/*view new dataset*/
proc print data =final_data; 

一对多合并生成了一个新数据集,其中包含两个数据集的所有信息。

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

其他资源

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

如何在SAS中进行左连接
如何在 SAS 中执行内连接
如何在 SAS 中执行外部联接

添加评论

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