如何在 sas 中执行外连接(带有示例)


您可以使用以下基本语法对 SAS 中的两个数据集执行外连接:

 proc sql ;
    create table final_table as
    select coalesce(x.team, y.team) as team, x.team, x.points, y.team, y.assists
    from data1 as x full join data2 as y
    on x.team = y.team;
quit ;

此特定示例使用完整联接语句执行外联接,并返回名为data1data2 的数据集中的所有行。

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

示例:在 SAS 中执行外连接

假设我们在 SAS 中有以下两个数据集,其中包含有关各个篮球队的信息:

 /*create datasets*/
data data1;
    input team $points;
    datalines ;
At 18
B22
C19
D 14
E14
F 11
G20
H 28 
;
run ;

data data2;
    input team $assists;
    datalines ;
At 4
B9
C14
D 13
L 10
M 8
;
run ;

/*view datasets*/
proc print data =data1;
proc print data =data2; 

我们可以使用以下语法来执行外连接并创建一个包含两个数据集中的每一行的新数据集:

 /*perform outer join*/
proc sql ;
    create table final_table as
    select coalesce(x.team, y.team) as team, x.team, x.points, y.team, y.assists
    from data1 as x full join data2 as y
    on x.team = y.team;
quit ;

/*view results of outer join*/
proc print data =final_table;

生成的数据集包含每个单独数据集的每一行。

请注意,我们必须使用COALESCE函数来确保两个数据集中的团队名称都返回到结果数据集中。

如果我们不使用此函数,则结果数据集中将仅显示第一个数据集的团队列值。

其他资源

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

如何在 SAS 中执行内连接
如何在SAS中进行左连接
SAS中如何删除重复项

添加评论

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