Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中导入多个文件名为的Excel文件_R_Excel_Import - Fatal编程技术网

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

在R中导入多个文件名为的Excel文件,r,excel,import,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.

我有大约一百个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)))
库(xlsx)
setwd(“c:/temp/”)

文件名是我自己想出来的。关键是使用
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)
库(plyr)

df.list是我自己想出来的。关键是使用
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)
库(plyr)

是否每个文件中的列数不相等?是的,有些文件的第三栏是空的。你看到我与你共享的链接了吗?是的,但无法真正理解。我应该使用merge_all而不是rbind吗?每个文件中的列数是否不等?是的,有些文件的第三栏是空的。你看到我与你共享的链接了吗?是的,但无法真正理解。我应该使用merge_all而不是rbind吗?感谢您在自己找到答案后发布答案;我相信它对其他人有用,但不是每个人都有用。plyr不是很棒吗?谢谢你在自己找到答案后发布了答案;我相信它对其他人有用,但不是每个人都有用。plyr不是很棒吗?