为返回的purr::map2()列表的内容提供不同的对象名称

为返回的purr::map2()列表的内容提供不同的对象名称,r,object,rename,variable-assignment,purrr,R,Object,Rename,Variable Assignment,Purrr,我试图使用两个不同的参数进行某种计算 purrr::map2( .x=c(1,3), .y=c(10,20), 函数(.x,.y)rnorm(1,.x,.y) ) purrr::map2()返回一个列表,但我想为列表中的每个内容指定一个不同的对象名。例如,我想将第一个列表命名为[[1]][1]-5.962716为model1,[[2]][1]-29.58825为model2。换句话说,我想自动化对象命名,比如model*purr::map2( +.x=c(1,3), +.y=c(10,20),

我试图使用两个不同的参数进行某种计算

purrr::map2(
.x=c(1,3),
.y=c(10,20),
函数(.x,.y)rnorm(1,.x,.y)
)
purrr::map2()
返回一个列表,但我想为列表中的每个内容指定一个不同的对象名。例如,我想将第一个列表命名为
[[1]][1]-5.962716
model1
[[2]][1]-29.58825
model2
。换句话说,我想自动化对象命名,比如
model*purr::map2(
+.x=c(1,3),
+.y=c(10,20),
+函数(.x,.y)rnorm(1,.x,.y)
+ )
[[1]]
[1] -5.962716
[[2]]
[1] -29.58825

这个问题与类似,但请注意,我需要在单独的对象中获得计算结果以供参考。

您可以使用
setNames
为结果指定名称:

result <- purrr::map2(
  .x = c(1, 3),
  .y = c(10, 20),
  function(.x, .y)rnorm(1, .x, .y)
) %>%
  setNames(paste0('model', seq_along(.)))

如果希望它们作为单独的对象而不是列表的一部分,可以使用
list2env

list2env(result, .GlobalEnv)

谢谢你的快速回答!你救了我一天!是否可以将从
list2env()返回的单独对象保存为Rds或Rda文件(单独)?你知道怎么做吗?可能是这样的:
sapply(名称(结果)、函数(x)saveRDS(结果[[x]],sprintf('obj_%s.rds',x))
list2env(result, .GlobalEnv)