在R中使用apply with assign

时间:2013-04-29 10:45:09

标签: r loops apply

考虑以下示例:

Vars <- c("car","bike","lorry")
Dat <- c(10,20,22)

for (i in 1:length(Vars)){
  assign(Vars[i],Dat[i])
}

在这里,我想在工作空间中根据Vars中的条目和Dat中的值生成三个变量。目前我正在使用循环,但我一直试图通过使用apply来删除循环,这样做的最佳方法是什么?

2 个答案:

答案 0 :(得分:7)

这是何时使用for循环而不是apply的一个很好的示例   最好的解决方案是保持原样。

如果您真的想使用*ply循环,请使用mapply

 mapply(assign, Vars, Dat, MoreArgs=list(envir=parent.frame()))

答案 1 :(得分:2)

您也可以使用attach例如:

attach(as.list(setNames(Dat,Vars)))