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

如何在R语言中将多份双列制表符分隔TXT文件合并为一个数据框

解决方法

核心问题分析

你的TSV文件没有表头,第一行是实际数据,但read_tsv默认把第一行当作列名,导致列名被替换成了第一行的ID和文本值,后续数据出现错位。

完整实现步骤

1. 加载必要工具包

使用readr处理文件读取,dplyr和purrr完成批量操作与数据合并:

library(readr)
library(dplyr)
library(purrr)

2. 获取目标文件夹内所有TXT文件路径

将"speeches/"替换为你的实际文件存储路径:

file_paths <- list.files(path = "speeches/", pattern = "\\.txt$", full.names = TRUE)

3. 批量读取并统一整理文件

定义函数处理单个文件,强制跳过表头识别,手动指定列名后合并所有数据:

# 定义单文件读取逻辑
read_speech_file <- function(file) {
  read_tsv(file, col_names = FALSE) %>%
    rename(ID = X1, Text = X2)
}

# 批量处理所有文件并按行合并
combined_corpus <- map_dfr(file_paths, read_speech_file)

4. 验证结果

查看合并后数据框的前几行,确认列名与数据格式正确:

head(combined_corpus)

关键细节补充

  • col_names = FALSE:强制R不将文件第一行识别为表头,改用X1、X2作为临时列名,后续手动重命名为ID和Text。
  • map_dfr:来自purrr包,自动将多个数据框按行合并,比循环写法更高效简洁。
  • 如果文件包含土耳其语等特殊字符,可在read_tsv中指定编码确保字符正确读取:
    read_tsv(file, col_names = FALSE, locale = locale(encoding = "UTF-8"))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:37:15