如何在 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 中执行其他常见操作: