考虑以下示例:
Vars <- c("car","bike","lorry")
Dat <- c(10,20,22)
for (i in 1:length(Vars)){
assign(Vars[i],Dat[i])
}
在这里,我想在工作空间中根据Vars
中的条目和Dat
中的值生成三个变量。目前我正在使用循环,但我一直试图通过使用apply来删除循环,这样做的最佳方法是什么?
答案 0 :(得分:7)
这是何时使用for
循环而不是apply
的一个很好的示例
最好的解决方案是保持原样。
如果您真的想使用*ply
循环,请使用mapply
mapply(assign, Vars, Dat, MoreArgs=list(envir=parent.frame()))
答案 1 :(得分:2)
您也可以使用attach
例如:
attach(as.list(setNames(Dat,Vars)))