如何使用 dplyr 中的选定列执行左连接
您可以在 dplyr 中使用以下基本语法,仅使用选定的列对两个数据框执行左连接:
library (dplyr) final_df <- df_A %>% left_join(select(df_B, team, conference), by=" team ")
此特定示例将对名为df_A和df_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 中执行其他常见操作: