Я пытаюсь написать функцию загрузки данных для пакета R, и я хотел бы иметь возможность передавать аргументы через многоточие дочерней функции, которую я использую для чтения данных. Моя функция ниже,
upload_data_excel <- function(directory_path, ...) {
# capture ellipsis
dots <- rlang::list2(...)
# list of file names for upload
file_list <- list.files(directory_path, pattern = '*.xlsx$', full.names = TRUE)
# concatenate data files
data <- file_list %>% purrr::map_dfr(~ readxl::read_excel(., !!! dots))
# clean column names
data %<>% janitor::clean_names(case = 'snake')
# output concatenated tibble
return(data)
}
Иногда многоточие будет пустым, поэтому я хочу, чтобы он работал и в этом случае. Я получаю сообщение об ошибке
Error: `sheet` must have length 1
Является ли этот подход правильным? Ошибка говорит о том, что я неправильно распаковываю точки в функции read_excel. Есть мысли?