【发布时间】:2015-03-03 22:09:41
【问题描述】:
说我有数组:
> arr <- array(1, dim=c(3, 3, 3))
, , 1
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
, , 2
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
, , 3
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
我想使用大小为 2 的滚动窗口计算移动平均值。这意味着我想计算数组的每个 3 维的移动平均值,将它们 2 乘以 2。最后,我会得到一些东西喜欢:
> rollmeanThatWorksWithArrays(arr, k=2, margin=c(1, 2))
, , 1
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
, , 2
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[3,] 1 1 1
我可以使用apply(arr, margin=c(1, 2), mean) 在第三维上做这个平均值,但还没有弄清楚如何做一个滚动平均值。也许rollmean/rollapply根本不支持,我得自己写函数?
【问题讨论】:
-
虽然示例数据很受欢迎,但滚动平均值的恒定值示例是毫无意义的。
-
@thelatemail 是的,我知道。我试图保持尽可能简单,尽管这可能会使它有点混乱。忍受我,想象一下数组中充满了随机数据:)