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

基于R语言合并多份Scopus文献CSV文件并去除重复项

用R合并Scopus导出的CSV文件并去重

准备工作

  • 将所有Scopus导出的CSV文件放在同一个文件夹下,确保所有文件的列结构完全一致(Scopus默认导出格式统一,只要未手动修改列名即可)
  • 可选择安装tidyverse包(高效的文件读取与数据处理工具集),或直接用base R实现(无需额外包)

方法一:用tidyverse(推荐,高效易读)

# 首次使用时安装包
install.packages("tidyverse")

# 加载包
library(tidyverse)

# 设置工作目录为CSV所在文件夹,替换为你的实际路径
setwd("~/你的文件夹路径/Scopus_Results")

# 获取文件夹内所有CSV文件的完整路径
csv_files <- list.files(pattern = "\\.csv$", full.names = TRUE)

# 批量读取所有CSV并合并为单个数据框
combined_data <- map_dfr(csv_files, ~read_csv(.x, show_col_types = FALSE))

# 基于Scopus唯一标识EID去重,保留所有列
unique_data <- combined_data %>%
  distinct(EID, .keep_all = TRUE)

# 保存去重后的结果
write_csv(unique_data, "scopus_combined_unique.csv")

方法二:用base R(无需额外包)

如果不想安装第三方包,用base R也能完成操作:

# 设置工作目录
setwd("~/你的文件夹路径/Scopus_Results")

# 获取所有CSV文件名
csv_files <- list.files(pattern = "\\.csv$", full.names = TRUE)

# 批量读取并合并文件
combined_data <- do.call(rbind, lapply(csv_files, function(file) {
  read.csv(file, stringsAsFactors = FALSE, fileEncoding = "UTF-8")
}))

# 基于EID去除重复项
unique_data <- combined_data[!duplicated(combined_data$EID), ]

# 保存最终结果
write.csv(unique_data, "scopus_combined_unique.csv", row.names = FALSE, fileEncoding = "UTF-8")

关键说明

  • 去重依据选择:优先使用EID——这是Scopus为每篇文献分配的唯一标识符,能完全避免误判不同文献为重复;若需用DOI去重,将代码中的EID替换为DOI即可,但注意部分文献可能无DOI
  • 性能优化:read_csv(tidyverse)比base R的read.csv读取速度更快,处理大量文件或大体积CSV时优势明显
  • 列结构检查:如果合并后出现NA列,说明部分CSV的列名不一致,可运行map(csv_files, ~names(read_csv(.x, n_max = 1)))检查所有文件的列名,确保统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:14:52