Так как excel_sheets()
возвращает символьный вектор, вы можете добавить эти символьные значения в новом столбце к каждому набору данных, когда вы читаете его. Это включает использование более сложной функции в map_dfr()
, так как теперь вы хотите сделать 2Задачи: 1., прочитайте набор данных с read_excel()
и 2., добавьте к нему столбец, содержащий имя листа.
Если path
- ваш путь к документу Excel, и вы называете новый столбецname
, код может выглядеть примерно так:
library(readxl)
library(purrr)
library(dplyr)
path = "Path_to_excel_file.xlsx"
path %>%
excel_sheets() %>%
map_dfr(
function(sheet) {
dat = read_excel(sheet, path = path)
mutate(dat, name = sheet)
}
)
Вы можете видеть, что я использовал анонимную функцию вместо кода тильды. Мне часто легче переходить на их использование, когда я делаю несколько шагов в рамках одного цикла карты, но это абсолютно личное предпочтение.
Я добавил новый столбец с mutate()
, но это можно сделатьи другими способами.