如何在 r 中进行外连接(带有示例)


在 R 中执行外连接有两种常见方法:

方法一:使用Base R

 merge(df1, df2, by=' column_to_join_on ', all= TRUE )

方法2:使用dplyr

 library (dplyr)

full_join(df1, df2, by=' column_to_join_on ')

每个方法都会返回两个表中的所有行。

两种方法都会产生相同的结果,但dplyr方法往往在极大的数据集上执行得更快。

以下示例展示了如何在实践中通过以下数据框使用每个函数:

 #define first data frame
df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(18, 22, 19, 14, 14, 11, 20, 28))

df1

  team points
1 to 18
2 B 22
3 C 19
4 D 14
5 E 14
6 F 11
7 G 20
8:28 a.m.

#define second data frame
df2 = data. frame (team=c('A', 'B', 'C', 'D', 'L', 'M'),
                 assists=c(4, 9, 14, 13, 10, 8))

df2

  team assists
1 to 4
2 B 9
3 C 14
4 D 13
5 L 10
6 M 8

示例 1:使用 Base R 的外连接

我们可以使用基础 R 中的merge()函数来执行外连接,使用“team”列作为要连接的列:

 #perform outer join using base R
df3 <- merge(df1, df2, by=' team ', all= TRUE )

#view result
df3

   team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 E 14 NA
6 F 11 NA
7 G 20 NA
8:28 AM NA
9L NA 10
10M NA 8

请注意,两个数据框中的所有行都会被返回。

示例 2:使用 dplyr 进行外连接

我们可以使用dplyr包中的full_join()函数来执行外连接,使用“team”列作为要连接的列:

 library (dplyr)

#perform outer join using dplyr 
df3 <- full_join(df1, df2, by=' team ')

#view result
df3

   team points assists
1 to 18 4
2 B 22 9
3 C 19 14
4 D 14 13
5 E 14 NA
6 F 11 NA
7 G 20 NA
8:28 AM NA
9L NA 10
10M NA 8

请注意,这对应于我们使用基 R 中的merge()函数获得的结果。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在 R 中进行左连接
如何在 R 中进行右连接
如何在 R 中进行内连接

添加评论

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