在R中导入多个带有文件名的Excel文件

我有大约一百个Excel文件,我需要导入到R和合并。 所有excel文件都有四列,每一列都需要导入。 这些文件如下所示:

1 127 122 1 87 2 107 1 136 k 1 210 

我还需要添加文件名作为每行的第五列。 所有的Excel文件都在同一个文件夹中。

到目前为止我已经尝试过

 library(xlsx) setwd("c:/temp/") filenames <- list.files(pattern=".xls") do.call("rbind", lapply(filenames, function(x) read.xlsx(file=x, sheetIndex=1, colIndex=(1:4), header=FALSE, FILENAMEVAR=x))) 

我得到以下错误:rbind(deparse.level,…)中的错误:参数的列数不匹配

我已经find了问题,空的单元格在第三和第四列作为完美的function,如果我只限于第一和第二列。

自己想出来。 关键是使用rbind.fill而不是rbind

 library(plyr) df.list <- lapply(filenames, function(x) read.xlsx(file=x, sheetIndex=1, colIndex=1:4,as.data.frame=TRUE, header=FALSE, FILENAMEVAR=x)) final.df <- rbind.fill(df.list)