【问题标题】:Rolling root mean square instead of mean in r滚动均方根而不是r中的均值
【发布时间】:2021-08-09 15:59:21
【问题描述】:

假设我有 1 小时的数据,我可以使用以下代码通过滚动平均值将数据聚合为 2 小时和 3 小时的数据。

library(zoo)
h1<-c(2, 4, 6)
h2<-rollmean(h1,2)
h3<-rollmean(h1,3)

这是我从中得到的:

h2
[1] 3 5

h3
[1] 4

但我想在聚合时使用下面的root mean square 函数而不是mean 函数。

sqrt(mean(x^2))

以下是所需的输出:

h2_rms
[1] 3.162278 5.099020
h3_rms
[1] 4.320494

【问题讨论】:

    标签: r rolling-computation


    【解决方案1】:

    您可以使用rollapply 应用您自己的功能:

    library(zoo)
    
    h1<-c(2, 4, 6)
    rms <- function(x) sqrt(mean(x^2))
    
    h2 <- rollapply(h1,2, rms)
    h3 <- rollapply(h1,3, rms)
    
    h2
    #[1] 3.162278 5.099020
    
    h3
    #[1] 4.320494
    

    【讨论】:

    • 还有sqrt(rollmean(h1^2, k))
    猜你喜欢
    • 2020-09-20
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多