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

R语言如何读取多个分号分隔txt文件并合并为单个data.table

错误原因

你当前生成的temp列表存储的是文件名字符串,并非导入后的数据集对象,rbindlist要求输入列表的每个元素必须为data.frame/data.table/list类型,因此触发类型不匹配报错。

正确实现方案

方案1:data.table体系(效率最高,推荐)

rbindlist搭配fread是目前处理多文本文件导入合并的最优方案之一,尤其适合大文件、多文件场景,性能远高于基础包实现:

# 加载data.table包
library(data.table)

# 1. 获取目标文件夹下所有文件的完整路径
# full.names=TRUE 保证返回绝对路径,避免工作目录不匹配导致读入失败
file_list <- list.files(path = "F:/Desktop/data", full.names = TRUE)

# 2. 批量读入所有分号分隔的txt文件
dt_list <- lapply(file_list, function(path) {
  fread(file = path, sep = ";")
})

# 3. 合并为单个data.table
final_dt <- rbindlist(dt_list, fill = FALSE, idcol = NULL)

# 如需转为普通data.frame,执行以下代码即可
# final_df <- as.data.frame(final_dt)

方案2:tidyverse体系(代码更简洁)

如果习惯用tidyverse语法,也可以用purrr::map_dfr一键完成导入合并:

library(tidyverse)

final_df <- list.files(path = "F:/Desktop/data", full.names = TRUE) %>%
  map_dfr(~ read_delim(.x, delim = ";", show_col_types = FALSE))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:03:03