【问题标题】:How to make use of rollapply or filter functions in R to create the moving average of a specific size in a 2D matrix如何利用 R 中的 rollapply 或 filter 函数在 2D 矩阵中创建特定大小的移动平均值
【发布时间】:2014-06-29 11:11:29
【问题描述】:

考虑到我们有一个窗口大小为 k 的填充矩阵可以使用移动平均线进行平滑处理,我​​想知道 filterrollapply 或其他我不知道的 R 函数是否可用于查找子矩阵的移动平均线。查看 R 手册,我看到它们已用于 1D 中的 MA,但只是想知道它们是否也可以用于 2D 中的 MA。

mat.pad<-function(X,k){
  dims<-dim(X)
  n<-dims[1]
  m<-dims[2]
  pad.X <- matrix(0, n + 2 * k, m + 2 * k)
  pad.X[(k + 1):(n + k), (k + 1):(m + k)] <- X
  return(pad.X)
}

【问题讨论】:

  • 您介意提供一个数据示例和所需的输出吗?
  • 参见rollapplyby.column 参数。
  • 我在另一篇文章中写了这个

标签: r image-processing matrix filter average


【解决方案1】:

如果您要问是否可以将移动平均线应用于多维对象,答案是肯定的。

例子

library(zoo)
#
a <- 1:10
b <- 11:20
c <- cbind(a,b)
#
rollapply(c,
          FUN = mean,
          width = 3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多