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

如何基于多个摘要TXT文件制作制表符分隔的汇总文件?

需求说明

创建包含所有摘要的制表符分隔文件,每条记录的每个字段都需单独设列,包括Presenter、Title……Abstract。关键词需拆分至单独列,需满足最多6个关键词的限制。

单个TXT文本文件样例:
text file样例

代码实现方案

你现有的代码仅完成了文件列表读取、单文件内容读取的基础操作,补充完整的可运行代码如下:

# 加载依赖包
if (!require(stringr)) install.packages("stringr")
library(stringr)
if (!require(dplyr)) install.packages("dplyr")
library(dplyr)

# 读取Abstracts目录下所有txt文件,匹配后缀避免读入其他格式文件
files_to_read <- list.files(path="Abstracts", pattern = "\\.txt$", full.names = TRUE)

# 定义单个摘要文件处理函数
process_abstract <- function(file_path) {
  # 读取文件内容并移除空行
  lines <- readLines(con = file_path, warn = FALSE)
  lines <- lines[nzchar(lines)]
  
  # 按字段标识提取对应内容,可根据你实际文件的字段格式调整匹配规则
  presenter <- str_extract(lines[str_detect(lines, "^Presenter: ")], "(?<=Presenter: ).*") |> trimws()
  title <- str_extract(lines[str_detect(lines, "^Title: ")], "(?<=Title: ).*") |> trimws()
  
  # 处理关键词:拆分后最多保留6个,不足补空值
  raw_keywords <- str_extract(lines[str_detect(lines, "^Keywords?: ")], "(?<=Keywords?: ).*") |> trimws()
  keywords <- str_split(raw_keywords, "[,,;;]\\s*")[[1]]
  keywords <- c(keywords, rep(NA_character_, 6 - length(keywords)))[1:6]
  
  # 提取摘要内容,默认摘要在Abstract标识之后
  abstract_start <- which(str_detect(lines, "^Abstract: "))
  abstract <- if (length(abstract_start) > 0) {
    paste(lines[abstract_start:length(lines)], collapse = " ") |> 
      str_remove("^Abstract: ") |> trimws()
  } else {
    NA_character_
  }
  
  # 组装为单行数据
  return(data.frame(
    Presenter = presenter,
    Title = title,
    Keyword1 = keywords[1],
    Keyword2 = keywords[2],
    Keyword3 = keywords[3],
    Keyword4 = keywords[4],
    Keyword5 = keywords[5],
    Keyword6 = keywords[6],
    Abstract = abstract,
    stringsAsFactors = FALSE
  ))
}

# 批量处理所有摘要文件
all_result <- lapply(files_to_read, process_abstract) |> bind_rows()

# 输出为制表符分隔的TSV文件
write.table(all_result, file = "全量摘要汇总.tsv", sep = "\t", row.names = FALSE, na = "", quote = FALSE)

注意事项

  • 上述代码的字段匹配规则默认摘要文件内每个字段都有Presenter: 、Title: 这类明确的前缀标识,如果你的实际文件格式和该假设不一致,调整对应行的正则匹配规则即可
  • 如果关键词的分隔符不是逗号、分号,修改str_split函数中的分隔符正则即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:06:03