gpt4 book ai didi

r - R中的连续独立手段(不使用滑动窗口)

转载 作者:行者123 更新时间:2023-12-04 11:39:04 24 4
gpt4 key购买 nike

我想计算类似于滚动平均值或移动平均值的东西,但不通过滑动窗口进行计算。例如,对于以下一组数字,我希望在 5 组下方显示平均值:

 1,2,3,4,5,1,2,4,5,6,7,8,1,2,3,1,1,3,2,1    
| 3 | 3.6 | 4.2 | 1.6 | //mean of every 5 numbers

我知道 movingAverages在 TTR 库和 rollmean 中可用函数都使用滑动窗口,所以做这样的事情相当简单:
d <- c(1,2,3,4,5,1,2,4,5,6,7,8,1,2,3,1,1,3,2,1)
m <- rollmean(d,5)
m[seq(1,length(m),5)]
> [1] 3.0 3.6 4.2 1.6

但是我有一个很大的数据集,必须有一种更有效的方法来计算这个……有什么想法吗?我假设有一个函数可以做到这一点,但我想不出这种类型的平均值被称为什么。

最佳答案

如果我理解正确,你可以这样做:

x <- c(1,2,3,4,5,1,2,4,5,6,7,8,1,2,3,1,1,3,2,1)

colMeans(matrix(x, nrow=5))
3.0 3.6 4.2 1.6

这是做什么的:
  • 将您的数据转换为矩阵
  • 取列表示


  • 由于这是对向量的单个操作(矩阵本身就是一个向量),所以这应该非常快。例如,对于包含 1000 万个元素的向量:
    x <- runif(1e7)
    system.time(colMeans(matrix(x, nrow=5)))
    user system elapsed
    0.05 0.02 0.07

    关于r - R中的连续独立手段(不使用滑动窗口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14361858/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com