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

use*_*577 1 import excel r

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

1     127          122
1     87      
2     107     
1     136    k    
1     210     
Run Code Online (Sandbox Code Playgroud)

我还需要为每行添加文件名作为第五列.所有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)))
Run Code Online (Sandbox Code Playgroud)

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

我已将问题定位为在第三和第四列中清空单元格,因为如果我将其仅限制为第一列和第二列,则函数可以正常工作.

use*_*577 5

自己搞清楚了.关键是要用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)
Run Code Online (Sandbox Code Playgroud)