Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用apply和assign_R_Loops_Apply - Fatal编程技术网

在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?只是为了更好的可读性?