使用 purrr::map 将多个数据帧写入 csv 文件

Write multiple data frames to csv-file using purrr::map

问题:

我有一个数据帧列表,应该将其作为 csv 文件写入磁盘。

假设这是数据帧列表:

dfs <- list(iris,
            mtcars)

什么不起作用:

我试过像这样构建正确的文件名,但没有成功:

dfs %>% 
  map(~paste0("data-raw/", ., ".csv"))

我希望这个位能正确地返回文件名作为字符串。相反,map 将每一列和每个值匹配到 paste0 调用。

我也尝试了 deparse(substitute(.)) 技巧,但是 .map 调用中没有被正确识别。

下一步是将数据帧(dfs 的元素)写入 csv 文件。

问题:

如何使用 purrr::map(或类似的方法)将每个数据帧(dfs 的每个元素)作为 csv 文件写入磁盘并使用 write_csv

map()walk() 都有效,但 walk() 不打印任何内容,而 map() 会。

隐形输出

list(iris = iris, mtcars = mtcars) %>%
  names(.) %>%
  walk(~ write_csv(dfs[[.]], paste0("data-raw/", ., ".csv")))

将输出打印到控制台

list(iris = iris, mtcars = mtcars) %>%
  names(.) %>%
  map(~ write_csv(dfs[[.]], paste0("data-raw/", ., ".csv")))