You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中连接数据框:合并含Clubs列的两个数据框且不重复列

在R语言中合并含相同Clubs列的数据框(仅保留匹配值)

要实现仅保留两个数据框中Clubs列匹配的值,且合并后不重复Clubs列,你可以用以下两种常用方法:

方法1:基础R的merge()函数

merge()是R内置的合并函数,通过指定匹配列和连接类型即可满足需求:

# 示例数据框
df1 <- data.frame(Clubs = c("曼联", "利物浦", "阿森纳"),
                  Points = c(85, 80, 75))
df2 <- data.frame(Clubs = c("曼联", "利物浦", "切尔西"),
                  Goals = c(70, 65, 60))

# 内连接合并(仅保留匹配的Clubs值)
merged_df <- merge(df1, df2, by = "Clubs", all = FALSE)
print(merged_df)
  • by = "Clubs":指定以Clubs列作为匹配依据
  • all = FALSE:开启内连接模式,只保留两个数据框中都存在的Clubs记录(默认就是该值,可省略)
  • 合并后Clubs列仅保留一列,不会重复

方法2:tidyverse的inner_join()函数

如果你使用tidyverse工作流,dplyr包的inner_join()更简洁直观:

# 首次使用需先安装dplyr
# install.packages("dplyr")
library(dplyr)

# 内连接合并
merged_df <- inner_join(df1, df2, by = "Clubs")
print(merged_df)
  • inner_join()本身就是内连接逻辑,自动只保留两边匹配的Clubs值
  • 同样会自动去重Clubs列,仅保留一列

补充说明

如果两个数据框的球队列名不一致(比如一个叫Club,一个叫Clubs),可以通过指定列名映射来匹配:

# 列名不同时的匹配方式(基础R)
merged_df <- merge(df1, df2, by = c("Clubs" = "Club"))
# 列名不同时的匹配方式(dplyr)
merged_df <- inner_join(df1, df2, by = c("Clubs" = "Club"))

内容的提问来源于stack exchange,提问作者Daniel Isaac Chavez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:02:11