2016-11-22 51 views
-1

数据帧我要合并的文件在行,但其中的一些文件有不同的行数(0为好)。我正在逐渐R中的以下错误:创建R中

fileList <- list.files(, pattern=".txt") 
new_df=do.call(rbind, lapply(fileList, function(X) { 
data.frame(id = basename(X), tryCatch(read.table(X), error=function(e) NULL))} 
)) 

错误data.frame(ID =基名(X),tryCatch(函数read.table(X),误差= 函数(e)中NULL)):参数意味着不同的行数:1,0

任何有关如何仍然合并文件并创建单个数据框的建议,即使某些文件没有任何行(h我可以忽略它们)?

+1

好吧,你筑巢'read.table'电话,我会添加代码'data.frame'里面是麻烦的秘诀。 – joran

回答

0

使用data.table 负载与fread 绑定文件所有rbindlist 的data.tables当您添加一个最小的可重复的例子

library(data.table) 
files = list.files(dir, pattern='.txt') 
dtList = lapply(files, FUN=fread) 
dt = rbindlist(dtList, use.names=TRUE) 
+0

我得到这个错误:rbindlist(dtList,use.names = TRUE)错误: 项目44有10列,与具有11列的项目1不一致。如果您需要填写缺失的列,请将set参数'fill'设置为TRUE.So我添加了参数“fill = TRUE”并且它工作正常。 – user45292