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

如何将无结构语音转文字TXT转录文件读取到R并关联对应ID

R 读取无结构纯文本TXT并匹配ID的解决方案

核心逻辑

直接逐文件读取全部文本内容,提取文件名作为ID,最终拼接为两列结构化数据框,无需依赖结构化文本读取函数。


方案1:Base R 实现(无需安装额外包)

# 1. 获取目标文件夹下所有txt文件的全路径
txt_files <- list.files(
  path = "替换为你的TXT文件所在文件夹路径",
  pattern = "\\.txt$", # 仅匹配后缀为txt的文件
  full.names = TRUE, # 返回完整路径而非仅文件名
  ignore.case = TRUE # 忽略大小写,兼容.TXT后缀的文件
)

# 2. 逐文件读取文本、提取ID,拼接为数据框
result <- do.call(rbind, lapply(txt_files, function(f) {
  # 读取文本内容,多行文本自动拼接为单个字符串,关闭无行尾符警告
  text_content <- paste(readLines(f, warn = FALSE), collapse = " ")
  # 提取ID:默认取不带后缀的文件名,如需提取文件名中的数字可替换为下行代码
  # id <- gsub("\\D", "", basename(f)) 
  id <- tools::file_path_sans_ext(basename(f))
  return(data.frame(ID = id, Text = text_content, stringsAsFactors = FALSE))
}))

# 如ID为数字格式,可手动转换类型
result$ID <- as.integer(result$ID)

方案2:Tidyverse 实现(代码更简洁)

library(tidyverse)

result <- tibble(
  file_path = list.files(
    "替换为你的TXT文件所在文件夹路径",
    pattern = "\\.txt$",
    full.names = TRUE,
    ignore.case = TRUE
  )
) %>%
  mutate(
    # 提取ID,需数字ID则替换为 str_extract(basename(file_path), "\\d+")
    ID = tools::file_path_sans_ext(basename(file_path)),
    # 逐文件读取文本内容
    Text = map_chr(file_path, ~paste(readLines(.x, warn = FALSE), collapse = " "))
  ) %>%
  # 保留需要的两列
  select(ID, Text)

与独立ID CSV文件关联

读取你的ID对应CSV文件后,直接按ID字段关联即可:

# 读取你的ID对应CSV
id_csv <- read.csv("替换为你的CSV文件路径")

# Tidyverse 关联方式
final_data <- left_join(result, id_csv, by = "ID")

# Base R 关联方式
# final_data <- merge(result, id_csv, by = "ID", all.x = TRUE)

特殊场景适配

如果你的TXT文件名为TextFile1.txt这类带前缀的格式,只需将ID提取逻辑替换为正则提取数字的代码,即可直接得到示例中的1、2、3格式的纯数字ID,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:06