【发布时间】:2014-03-04 22:06:38
【问题描述】:
我有一个带有向量参数的d 维函数,我试图在一个简单的情况下在一个规则网格上计算它的值d=2。在这里尝试outer 是很自然的,它完美地工作,即在简单的情况下
> outer(1:2, 3:4, function(x, y) x+y)
[,1] [,2]
[1,] 4 5
[2,] 5 6
但是,我的函数不支持自然矢量化。为了说明,想想像
> outer(1:2, 3:4, function(x, y) length(c(x, y)))
具有所需的输出(显然,上述代码的实际结果是错误的)
[,1] [,2]
[1,] 2 2
[2,] 2 2
我目前的解决方法类似于apply(expand.grid(1:2, 3:4), 1, length),但这对我来说看起来有点笨拙。对于这种情况,有没有像outer 这样直接的东西?
【问题讨论】:
-
一些 history here,在 cmets 中也链接回了之前的 @agstudy 帖子。
标签: r vectorization apply