【发布时间】:2019-09-21 09:44:52
【问题描述】:
这是一个棘手的 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)
我尝试执行 this solution 但它失败了,因为文件名必须与 read_csv() 的完整路径 (full.names = TRUE) 一起使用,但我想分配没有完整路径的文件名。
换句话说,这行得通——但只能在文件名中使用完整路径:
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 与保存 (->> filenames) 一起使用,或者有没有更简单的方法可以完全避免保存到临时变量(文件名)?
【问题讨论】: