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

如何在R中合并数据框,生成指定格式的研究者年度论文统计结果?

解决方案(基于tidyverse工具包)

首先确保安装并加载tidyverse工具链:

install.packages("tidyverse")
library(tidyverse)

1. 拆分工作经历为年度行记录

针对研究者工作经历数据框(假设名为researcher_experience),将每段任职经历展开为每年一行的记录:

# 创建研究者唯一标识(姓+名首字母)
researcher_experience <- researcher_experience %>%
  mutate(RESEARCHER_ID = str_c(LASTNAME, "_", FIRSTNAMEINITIAL)) %>%
  # 按任职段拆分年度
  group_by(LASTNAME, FIRSTNAMEINITIAL, STARTYEAR, ENDYEAR, POSITION, RESEARCHER_ID) %>%
  expand(YEAR = STARTYEAR:ENDYEAR) %>%
  ungroup()

此步骤直接将起止年份区间拆分为单独的年度行,解决多段经历拆分的问题。

2. 匹配研究者与论文作者,过滤唯一姓名组合

先过滤掉姓名组合重复的研究者,再处理论文数据匹配对应作者:

# 第一步:仅保留LASTNAME+FIRSTNAMEINITIAL唯一的研究者
unique_researchers <- researcher_experience %>%
  distinct(LASTNAME, FIRSTNAMEINITIAL, RESEARCHER_ID, .keep_all = FALSE)

# 第二步:拆分论文作者列并提取姓名信息(假设作者格式为"Doe J, Potter H")
paper_authors <- journal_papers %>%
  separate_rows(AUTHORS, sep = ", ") %>%
  mutate(
    LASTNAME = str_extract(AUTHORS, "^[A-Za-z]+"),
    FIRSTNAMEINITIAL = str_extract(AUTHORS, "\\b[A-Za-z]$"),
    RESEARCHER_ID = str_c(LASTNAME, "_", FIRSTNAMEINITIAL)
  ) %>%
  # 仅保留与唯一研究者匹配的作者记录
  inner_join(unique_researchers, by = "RESEARCHER_ID")

此步骤完成姓名匹配并过滤重复姓名组合的研究者,解决第二个核心难点。

3. 统计年度发文量并合并数据

先统计每个研究者每年的论文发表数,再与拆分后的工作经历数据合并:

# 统计研究者年度发文量
researcher_paper_counts <- paper_authors %>%
  group_by(RESEARCHER_ID, PUBYEAR) %>%
  summarise(PAPER_COUNT = n(), .groups = "drop") %>%
  rename(YEAR = PUBYEAR)

# 合并工作经历与发文量,未发文年度填充为0
final_df <- researcher_experience %>%
  left_join(researcher_paper_counts, by = c("RESEARCHER_ID", "YEAR")) %>%
  replace_na(list(PAPER_COUNT = 0)) %>%
  # 整理列顺序(可选)
  select(LASTNAME, FIRSTNAMEINITIAL, YEAR, POSITION, PAPER_COUNT)

补充说明

  • 若论文AUTHORS列格式不同(如名在前、含中间名),需调整正则表达式适配姓名提取逻辑;
  • 若任职经历的ENDYEAR为当前年份,可替换为year(Sys.Date())确保包含当前年度;
  • 若需区分同名研究者,需补充机构等额外标识字段,当前方案仅适配姓名组合唯一的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:49:53