如何使用 purrr 将多个对象保存为 .Rdata 文件

How to save multiple objects as .Rdata files with purrr

我的 R 环境中有一个对象列表,我想将它们保存为对应的 .Rdata 文件。我知道如何单独保存它们,但是 我想用 purrr 迭代地保存它们(例如使用 mapwalk?)。我试了几次,总是报错。

# Example dfs 
my_mtcars <- mtcars
my_orange <- Orange
list_dfs  <-  list (my_mtcars = my_mtcars, my_orange = my_orange)

# Individually I would do: 
saveRDS(object = my_mtcars, file = paste0("my_mtcars", ".RDS"))

# Here is one of my [WRONG] attempts
n <- 1:2 
purrr::walk2(.x = list_dfs, .y =n,  ~saveRDS(.x, file = paste0(names(list_dfs[n]), ".RDS")))

有什么想法吗?

我认为更好的选择是在这里使用 imap/iwalk 将数据 (.x) 和名称 (.y) 传递给函数.

purrr::imap(list_dfs, ~saveRDS(.x, file = paste0(.y, ".RDS")))

iwalk-

purrr::iwalk(list_dfs, ~saveRDS(.x, file = paste0(.y, ".RDS")))