2016-11-22 101 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