Как объединить несколько файлов Excel с несколькими листами в R? - PullRequest
0 голосов
/ 26 мая 2020

Я хочу объединить 7 файлов Excel с несколькими листами в R. Все листы имеют одинаковую структуру. Я пытаюсь использовать for, но результат - последняя книга или ошибка. Код:

files <- list.files(pattern = ".xlsx")
sheets <- excel_sheets(files)
library(xlsx)
setwd("C:/Users/User/Documents")

for(i in 1:7){
  file <- files
  vari <- sheets %>%
    set_names() %>%
    map_df(~ read_excel(path,skip = 5 ,sheet = .x), .id = "sheet")
}

Спасибо ...

1 Ответ

0 голосов
/ 26 мая 2020

Предложу такое решение. Вы можете составить data.frame со списком файлов и листов в них. Затем используйте map2_dfr.

library(tidyverse)
setwd("C:/tmp") 

path <- list.files(".", pattern = ".xlsx", full.names = T)

df_files <- data.frame(files = path) %>% 
  rowwise() %>% 
  mutate(sheets = list(excel_sheets(files))) %>% 
  unnest(sheets)

df <- map2_dfr(.x = df_files$files, .y = df_files$sheets, readxl::read_xlsx)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...