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

时间:2014-01-16 10:39:41

标签: r excel import

我有大约一百个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,...)出错:参数列数不匹配

我已将问题定位到第三列和第四列中的空单元格,因为如果我将其仅限制为第一列和第二列,函数将完美运行。

1 个答案:

答案 0 :(得分: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)