使用 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")))
问题:
我有一个数据帧列表,应该将其作为 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")))