用文件名作为列读取所有Excel文件为R由表(Read All Excel Files into R

2019-10-29 02:31发布

我有相同的格式的Excel文件的本地文件夹。 每个excel文件具有10个片材。

我希望能够做到以下几点:

1)浏览所有的R中的Excel文件

2)Rbind所有的结果一起,而是由片材

3)结果将与rbinded共同所有的Excel文件10个新dataframes。

4)新柱将文件名添加

我已经看过了代码,我能找到的最好的就是这一点,但它不表做到这一点:

files = list.files()
library(plyr)
library(readr)
library(readxl)
data2=lapply(files, read_excel)
for (i in 1:length(data2)){data2[[i]]<-cbind(data2[[i]],files[i])}
all_data <- do.call("rbind.fill", data2) 

有没有人有任何与此成功?

提前致谢

Answer 1:

如果您想您也可以使用矢量化它tidyverse方法。

require(tidyverse)

df <- list.files(path = "your_path",
                       full.names = TRUE,
                       recursive = TRUE,
                       pattern = "*.xls") %>% 
tbl_df() %>%
mutate(sheetName = map(value, readxl::excel_sheets)) %>%
unnest(sheetName) %>% 
mutate(myFiles = purrr::map2(value, sheetName, function(x,y) {
    readxl::read_excel(x, sheet = paste(y))})) %>% 
unnest(myFiles)

*不知怎的,我无法将其标记,所以我抄袭我的答案在这里



文章来源: Read All Excel Files into R by Sheet with file name as column