首页 > 解决方案 > 在所需变量名称的列表/向量上应用分配函数

问题描述

假设我有一个包含变量名称的向量 v1,并且我想为每个变量分配一个值(存储在单独的向量中)。我怎么能在没有迭代的情况下做到这一点?

v1 <- c("a","b","c")
v2 <- c(1,2,3)

我想在没有循环的情况下实现:

for (i in 1:3){
  assign(v1[i],v2[i])
}

我觉得我很接近,purrr:map2但我尝试了不同的输入类、函数等,但无法将变量写入内存。

map2(v1,v2,function(x,y) assign(x,y))

标签: r

解决方案


如果你真的想把它们放在全局环境中,你可以使用

list2env(setNames(as.list(v2), v1), envir = .GlobalEnv) # no need for assign()

但我建议将它们保存在一个列表中:

vars <- setNames(as.list(v2), v1)

推荐阅读