Читать все файлы Excel в R на листе с именем файла в качестве столбца - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть локальная папка с файлами Excel в том же формате.Каждый файл Excel имеет 10 листов.

Я хочу иметь возможность сделать следующее:

1) Прочитать все файлы Excel в R

2) Сшить все результаты вместе, но по листу.

3) Результатом будет 10 новых фреймов данных со всеми файлами Excel, объединенными вместе.

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) 

Кто-нибудь имел успех с этим?

Заранее спасибо

1 Ответ

0 голосов
/ 25 февраля 2019

Если вы хотите, вы также можете векторизовать его, используя подход 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)

* Почему-то мне не удалось пометить его, поэтому я копирую свой ответ из здесь

...