我在一个目录中有大量数据文件 (>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/