r - 将一个目录中的大量文件合并到R中的数据框中

标签 r

我在一个目录中有大量数据文件 (>1000)。我想将它们全部合并到 R 中的一个数据框中。它们都具有相同数量和类型的列。 到目前为止,我所拥有的是:

setwd("directory")
files <- list.files()
for (i in 1:length(files)) assign(files[i], read.csv(files[i]))

这会为 1000 多个文件中的每一个创建数据框。有没有办法合并它们,而不必输入所有 1000 多个文件名的列表?

如有任何帮助,我们将不胜感激!

最佳答案

使用 data.table 执行此操作的标准方法(因其速度而推荐)是:

library(data.table)
data <- rbindlist(lapply(list.files(), fread))

还有一些额外的功能,例如

rbindlist(lapply(list.files(), fread), fill = TRUE)

将处理您的一些或许多文件具有不同列名称的可能性——在那些缺少该列的文件中,任何非重叠都将用 NA 填充。


编辑:正如@nicola 提到的,除非您真的知道自己在做什么,否则一般应避免使用assign

参见 this发布以进一步引用。

关于r - 将一个目录中的大量文件合并到R中的数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31624492/

相关文章:

r - 应用返回奇怪的结果

r - 使用 R/tidyverse 将数据框的一列分隔为未定义的列数

r - 在嵌套列表中使用 R 和复杂数据框进行子集化

r - 来自随机正态分布的平行样本——不是更快吗?

r - R中的矩阵幂

r - Shiny - 在输出中使用observe 函数调用的结果

r - 在 R 中使用 dplyr 包时出错

r - 使用 raster 包的空间相关图

r - 在 R 中查找 "near duplicates"字符串

r - R 中用户定义函数中的公式