如何在 r 中进行左连接(附示例)
您可以使用merge()函数在基 R 中执行左连接:
#left join using base R merge(df1,df2, all. x = TRUE )
您还可以使用dplyr包中的left_join()函数来执行左连接:
#left join using dplyr
dplyr::left_join(df2, df1)
注意:如果您正在处理非常大的数据集,则 left_join()函数往往比merge()函数更快。
以下示例展示了如何在实践中通过以下数据框使用每个函数:
#define first data frame df1 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), dots=c(99, 93, 96, 104)) df1 team points 1 Mavs 99 2 Hawks 93 3 Spurs 96 4 Nets 104 #define second data frame df2 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '), rebounds=c(25, 32, 38, 30), assists=c(19, 18, 22, 25)) df2 team rebound assists 1 Mavs 25 19 2 Hawks 32 18 3 Spurs 38 22 4 Nets 30 25
示例 1:使用 Base R 进行左连接
我们可以使用基础 R 中的merge()函数来执行左连接,使用“team”列作为要连接的列:
#perform left join using base R merge(df1, df2, by=' team ', all. x = TRUE ) team points rebound assists 1 Hawks 93 32 18 2 Mavs 99 25 19 3 Nets 104 30 25 4 Spurs 96 38 22
示例 2:使用 dplyr 进行左连接
我们可以使用 dplyr 包中的left_join()函数来执行左连接,使用“team”列作为要连接的列:
library (dplyr) #perform left join using dplyr left_join(df1, df2, by=' team ') team points rebound assists 1 Mavs 99 25 19 2 Hawks 93 32 18 3 Spurs 96 38 22 4 Nets 104 30 25
您会注意到这两个函数之间的一个区别是merge()函数根据用于执行连接的列自动按字母顺序对行进行排序。
相反, left_join()函数保留第一个数据帧中行的原始顺序。
其他资源
以下教程解释了如何在 R 中执行其他常见操作: