在R中使用apply和assign
考虑以下示例:在R中使用apply和assign,r,loops,apply,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这是一个很好的例子,说明何时使用for循环而不是应用 最好的解决办法是保持现状 如果确实要使用*ply循环,请使用mappy mapply(assign, Vars, Dat, MoreArgs=list(envir=parent.frame())
Vars <- c("car","bike","lorry")
Dat <- c(10,20,22)
for (i in 1:length(Vars)){
assign(Vars[i],Dat[i])
}
Vars这是一个很好的例子,说明何时使用for
循环而不是应用
最好的解决办法是保持现状
如果确实要使用*ply
循环,请使用mappy
mapply(assign, Vars, Dat, MoreArgs=list(envir=parent.frame()))
您还可以使用attach
,例如:
attach(as.list(setNames(Dat,Vars)))
如果循环对您有效,为什么要删除它?这是由for循环驱动的更大脚本的一部分,因此我尝试删除第二个循环,认为这将是更好的编程实践。从下面的答案中,我看到在这种情况下,循环可能更好,它似乎比使用mapply更可读,谢谢你的评论。Kate,用R完成事情通常有几种方法,每种方法都在正确的时间有自己的位置……)只是出于好奇:为什么您更喜欢循环而不是mapply?只是为了更好的可读性?