如何使用 purrr 将多个对象保存为 .Rdata 文件
How to save multiple objects as .Rdata files with purrr
我的 R 环境中有一个对象列表,我想将它们保存为对应的 .Rdata
文件。我知道如何单独保存它们,但是 我想用 purrr
迭代地保存它们(例如使用 map
或 walk
?)。我试了几次,总是报错。
# 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")))
我的 R 环境中有一个对象列表,我想将它们保存为对应的 .Rdata
文件。我知道如何单独保存它们,但是 我想用 purrr
迭代地保存它们(例如使用 map
或 walk
?)。我试了几次,总是报错。
# 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")))