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

R读取多份WoS .bib文件并添加文件名列时遇报错求助

解决WoS多.bib文件读取合并及seq.default错误问题

错误原因

这个seq.default错误是因为部分.bib文件无法被RefManageR::ReadBib正确解析,常见诱因包括:文件为空、格式损坏(比如缺失关键字段、语法错误)、包含特殊字符或不符合WoS标准导出格式。大量警告也说明多数文件在解析时存在格式兼容问题。

解决方案

方案一:带错误处理的ReadBib读取(保留BibEntry对象)

通过tryCatch捕获读取错误,跳过损坏文件,同时记录错误信息避免流程中断:

library(RefManageR)
library(bibliometrix)

# 获取所有.bib文件路径
files <- list.files(
  path = "C:/Users/drive/OneDrive/Documentos/cienciometria parques africanos",
  pattern = "\\.bib$", 
  full.names = TRUE
)

# 安全读取函数:捕获错误并跳过无效文件
read_bib_safe <- function(file) {
  tryCatch({
    bib <- ReadBib(file)
    # 添加地点列(提取文件名并去掉.bib后缀)
    bib$location <- tools::file_path_sans_ext(basename(file))
    return(bib)
  }, error = function(e) {
    # 打印错误信息方便排查
    message(paste("读取失败:", file, "| 错误:", e$message))
    return(NULL)
  })
}

# 批量读取并过滤无效结果
bib_list <- lapply(files, read_bib_safe)
bib_list <- Filter(Negate(is.null), bib_list)

# 合并所有有效BibEntry对象
combined_bib <- do.call("c", bib_list)

方案二:使用bibliometrix原生函数(推荐,适配WoS格式)

bibliometrix::readFiles专门针对文献数据库导出文件优化,兼容性更强,返回的数据框格式更便于后续分析:

library(bibliometrix)

# 获取所有.bib文件路径
files <- list.files(
  path = "C:/Users/drive/OneDrive/Documentos/cienciometria parques africanos",
  pattern = "\\.bib$", 
  full.names = TRUE
)

# 批量读取所有文件,返回列表(每个元素对应一个文件的数据框)
bib_data_list <- readFiles(files)

# 生成对应每个文件的地点名称(去掉.bib后缀)
location_names <- tools::file_path_sans_ext(basename(files))

# 为每个文件的记录添加地点列
bib_data_list <- mapply(function(df, loc) {
  df$location <- loc
  return(df)
}, bib_data_list, location_names, SIMPLIFY = FALSE)

# 合并为单一数据框
combined_df <- do.call(rbind, bib_data_list)

额外排查建议

  • 查看message输出的错误文件,手动检查这些文件是否为空、格式错误(比如缺失@article等标签),必要时手动修复或重新导出WoS数据。
  • 若文件数量多,可先随机选取几个文件测试读取,确认格式是否标准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:45:03