Это сложный вопрос dplyr & purrr. Я хочу упростить следующий код в одну трубу dplyr:
filenames <- list.files(path = data.location, pattern = "*.csv") %>%
map_chr(function(name) gsub(paste0('(.*).csv'), '\\1', name))
files.raw <- list.files(path = data.location, pattern = "*.csv", full.names = TRUE) %>%
map(read_csv) %>%
setNames(filenames)
Я попытался решить это , но не удалось, поскольку имена файловдолжен использоваться с полным путем (full.names = TRUE) для read_csv (), но я хочу назначить имена файлов без полного пути.
Другими словами, это работало - но только с полным путем в именах файлов:
list.files(path = data.location, pattern = "*.csv", full.names = TRUE) %>%
{ . ->> filenames } %>%
map(read_csv) %>%
setNames(filenames)
, но это не так:
list.files(path = data.location, pattern = "*.csv", full.names = TRUE) %>%
{ map_chr(., function(name) gsub(paste0(data.location, '/(.*).csv'), '\\1', name)) ->> filenames } %>%
map(read_csv) %>%
setNames(filenames)
Есть ли способзаставить map_chr работать с save (->> filenames
), или есть еще более простой способ полностью избежать сохранения во временную переменную (имена файлов)?