如何使用 dplyr 中的选定列执行左连接


您可以在 dplyr 中使用以下基本语法,仅使用选定的列对两个数据框执行左连接:

 library (dplyr)

final_df <- df_A %>% 
  left_join(select(df_B, team, conference), by=" team ")

此特定示例将对名为df_Adf_B 的数据框执行左连接,连接到名为team的列,但只有df_B团队会议列才会包含在结果数据框中。

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

示例:使用 dplyr 中选定的列执行左连接

假设我们在 R 中有以下两个数据框:

 #create first data frame
df_A <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                   dots=c(22, 25, 19, 14, 38))

df_A

  team points
1 to 22
2 B 25
3 C 19
4 D 14
5 E 38

#create second data frame
df_B <- data. frame (team=c('A', 'C', 'D', 'F', 'G'),
                   conference=c('W', 'W', 'E', 'E', 'E'),
                   rebounds=c(14, 8, 8, 6, 9),
                   assists=c(4, 3, 9, 9, 4))

df_B

  team conference rebounds assists
1 AW 14 4
2 CW 8 3
3 OF 8 9
4 FE 6 9
5 GE 9 4

我们可以在 dplyr 中使用以下语法来执行左连接,但仅从df_B引入团队会议列:

 library (dplyr)

#perform left join but only bring in team and conference columns from df_B
final_df <- df_A %>% 
  left_join(select(df_B, team, conference), by=" team ")

#view final data frame
final_df

  team points conference
1A 22W
2 B 25 NA
3C 19W
4 D 14 E
5 E 38 NA

生成的数据帧包含df_A中的所有行,并且仅包含df_B团队值匹配的行。

使用 dplyr 的select()函数,我们能够指定我们只想从df_B导入团队会议列。

请注意,来自df_B反弹辅助列未包含在最终数据框中。

注意:您可以在 dplyr找到left_join()函数的完整文档。

其他资源

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

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

添加评论

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