如何使用 dplyr 连接多列数据框
您可以使用以下基本语法使用 dplyr 连接 R 中基于多列的数据框:
library (dplyr) left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))
当满足以下条件时,此特定语法将执行左连接:
- df1 的x1列中的值与 df2 的x2列中的值匹配。
- df1 的y1列的值对应于 df2 的y2列的值。
以下示例展示了如何在实践中使用此语法。
示例:使用 dplyr 连接多列
假设我们在 R 中有以下两个数据框:
#define first data frame df1 = data. frame (team=c('A', 'A', 'B', 'B'), pos=c('G', 'F', 'F', 'G'), dots=c(18, 22, 19, 14)) df1 team pos points 1 AG 18 2 AF 22 3 BF 19 4 BG 14 #define second data frame df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'), position=c('G', 'F', 'F', 'G', 'F'), assists=c(4, 9, 8, 6, 5)) df2 team_name position assists 1 GA 4 2 AF 9 3 BF 8 4 CG 6 5 CF 5
我们可以在 dplyr 中使用以下语法来执行基于两列的左连接:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position ')) #view result df3 team pos points assists 1 AG 18 4 2 AF 22 9 3 BF 19 8 4 BG 14 NA
生成的数据框包含df1中的所有行,并且仅包含df2中球队和位置值匹配的行。
另请注意,如果两个数据框共享相同的列名称,您可以简单地使用以下语法来连接多个列:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team ', ' position '))
其他资源
以下教程解释了如何在 R 中执行其他常见操作: