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

如何按分组合并两个数据框?R语言实现董事年度经验匹配

合并R语言数据框并添加工作经验列的实现方案

没问题,我来帮你搞定这个数据合并的需求!这里有个简洁高效的实现方案,完全贴合你的要求:

首先,先确认我们可以正确读取你提供的示例数据:

# 读取示例数据DF
DF <- read.table(text = "CompanyID Name Country ISIN Director_2006 Gender_2006 YearBirth_2006 Director_2007 Gender_2007 YearBirth_2007
25830 BANKxxx Austria AT000504 11734844255 M 54 11734844255 M 55
25830 BANKxxx Austria AT000504 187836811559 F 45 5524344997 F NA
25830 BANKxxx Austria AT000504 5524344997 F NA 5524354997 M 39
25830 BANKxxx Austria AT000504 5524354997 M 38 5742347684 M 38
25830 BANKxxx Austria AT000504 6613115791 M 41 40160443378 M 30
12339 BANKyyy Belgium AT034003 9855321789 M 44 9855321789 M 45
12339 BANKyyy Belgium AT034003 277520199 M NA 23779351 F 34", 
header = T, stringsAsFactors = F)

# 读取示例数据DF2
DF2 <- read.table(text = "DirectorID Year YearsExperience
11734844255 2006 0.4
11734844255 2007 1.4
187836811559 2006 1.5
5524344997 2006 2.4
5524344997 2007 3.4
5524354997 2006 1.8
5524354997 2007 2.8
5742347684 2007 3.5
40160443378 2007 4.3
9855321789 2005 2.6
9855321789 2006 3.6
9855321789 2007 4.6
277520199 2006 1.6
23779351 2007 3.2
55443322 2005 2.5
55443322 2006 3.5", 
header = T, stringsAsFactors = F)

接下来是核心的合并步骤,我们用dplyr包来完成(如果还没安装,先运行install.packages("dplyr")):

library(dplyr)

# 提取2006年的工作经验数据,并重命名列名便于后续匹配
exp_2006 <- DF2 %>%
  filter(Year == 2006) %>%
  select(DirectorID, Experience_2006 = YearsExperience)

# 提取2007年的工作经验数据,同样重命名列名
exp_2007 <- DF2 %>%
  filter(Year == 2007) %>%
  select(DirectorID, Experience_2007 = YearsExperience)

# 分两次左连接:先匹配2006年的经验,再匹配2007年的经验
DF_final <- DF %>%
  left_join(exp_2006, by = c("Director_2006" = "DirectorID")) %>%
  left_join(exp_2007, by = c("Director_2007" = "DirectorID"))

# 查看最终结果
print(DF_final)

方案说明

  • 我们先从DF2中分别筛选出2006和2007年的工作经验,避免无关年份的数据干扰;
  • 使用left_join可以保证原DF中的所有行都被保留,没有匹配到工作经验的董事(比如DF里的6613115791)会自动填充NA,完全符合你的期望输出;
  • 两次连接分别对应2006和2007年的董事ID,确保经验值和对应年份的董事准确匹配。

内容的提问来源于stack exchange,提问作者Tfg1005

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:42:06