我正在寻找一种使用data.table的fread和rbindlist函数快速读取和合并大量数据文件的方法。我认为如果fread可以将文件名向量作为参数,那么它可以成为一个优雅的一行代码,如下所示:
mergeddata = rbindlist(fread(list.files("my/data/directory/")))
但是由于似乎没有其他选择,我采取了更加麻烦的方法循环遍历文件以读取它们并将它们分配给临时名称,然后组合一个临时数据表名列表。但是每当我尝试调用数据表名称列表时,我就会出现问题。因此,我的问题是(1)在这种情况下如何传递数据表名称列表到rbindlist中,(2)更广泛地说,是否有更好的方法解决这个问题?
提前感谢您的时间和帮助!
datafiles = list.files()
datatablelist = c()
for(i in 1:length(datafiles)){
assign(paste("dt",i,sep=""),fread(datafiles[1]))
datatablelist = append(datatablelist ,paste("dt",i,sep=""))
}
mergeddata = rbindlist(list(datatablelist))
lapply(list.files("my/data/directory/"), fread)
,然后将结果数据框的列表使用rbind
组合起来。 - eipi10