【发布时间】:2014-09-24 17:43:08
【问题描述】:
R 中的 Vectorize() 和 apply() 函数通常可用于实现相同的目标。出于可读性的原因,我通常更喜欢向量化函数,因为主调用函数与手头的任务相关,而 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的一个问题... -
好吧,我想这开始回答我的问题了。在引擎盖下看起来
Vectorize()只是mapply()的包装器。 -
既然你的例子被
mget()排除了,你能用更好的例子重写吗?
标签: r vectorization apply mapply