Vectorize()
中的apply()
和R
函数通常可用于实现相同的目标。由于可读性原因,我通常更喜欢对函数进行矢量化处理,因为主调用函数与手头任务相关,而sapply
与之无关。当我要在R代码中多次使用该矢量化函数时,对Vectorize()
也是有用的。例如:
a <- 100
b <- 200
c <- 300
varnames <- c('a', 'b', 'c')
getv <- Vectorize(get)
getv(varnames)
与
sapply(varnames, get)
但是,至少在SO上,我很少在解决方案中看到带有
Vectorize()
的示例,只有apply()
(或其同级之一)。 Vectorize()
是否存在任何效率问题或其他合理问题,这些问题使apply()
成为更好的选择? 最佳答案
Vectorize
只是mapply
的包装。它只是为您提供的任何功能构建一个mapply
循环。因此,通常要做的事情比Vectorize()
容易得多,并且显式的*apply
解决方案最终在计算上是等效的,甚至可能更好。
另外,对于您的特定示例,您听说过mget
,对吗?
关于r - Vectorize()与Apply(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25081604/