如何将文件列表读入单个 data.table

How to read in a list of files to a single data.table

我正在使用 R。我有一系列全部 ; 分开的 txt 文件。我想将这些文件组合成 1 个数据框。每个单独的文件在顶行都有变量名。

我找到了一个有用的 post 来在线执行此操作。 How to import multiple .csv files at once?。我正在使用 rbindlist 来执行此操作,但如果有更简单的方法来导入此数据,我愿意接受建议。

这是我的代码。

# create list of files
temp <- NULL
temp <-  as.list (list.files ("F:/Desktop/data"))
temp

# now rbind the list using rbindlist
data <- NULL
data <- rbindlist(temp, fill=FALSE, idcol=NULL)

is.list (temp)
typeof (temp)

当我运行这段代码时,我得到一个错误

Error in rbindlist(temp, fill = FALSE, idcol = NULL) : 
  Item 1 of input is not a data.frame, data.table or list

但是,当我使用 is.list 和 typeof 检查温度时,它显示为一个列表。我不确定为什么 rbindlist 没有将列表作为列表读取。 rbindlist 是导入此数据的最佳方式吗?

list.files 只是给出了文件名。我们需要阅读这些文件。由于我们使用 data.table 中的 rbindlist,请使用 fread 阅读,然后使用 rbindlist

library(data.table)
temp <- list.files ("F:/Desktop/data", full.names = TRUE, pattern = "\.txt$")
out <- rbindlist(lapply(temp, fread), fill = TRUE)