在大型数据集上改变窗口大小的滚动平均值

2024-02-14

我想计算向量的滚动平均值,其中窗口随着向量中的每个条目而增长。基本上,我想要所有元素的平均值i-th, i+1-th, i+2-th,依此类推。

为了使它更清楚,我将提供一个示例和一个适用于较小数据集但不能很好扩展的解决方案:

library(zoo)

# data:
x <- 1:100

# solution:
rolling_average <- rollapply(x, seq_along(x), mean, align = "right")

# result:
rolling_average
# [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5
# [27] 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5 25.0 25.5 26.0 26.5
# [53] 27.0 27.5 28.0 28.5 29.0 29.5 30.0 30.5 31.0 31.5 32.0 32.5 33.0 33.5 34.0 34.5 35.0 35.5 36.0 36.5 37.0 37.5 38.0 38.5 39.0 39.5
# [79] 40.0 40.5 41.0 41.5 42.0 42.5 43.0 43.5 44.0 44.5 45.0 45.5 46.0 46.5 47.0 47.5 48.0 48.5 49.0 49.5 50.0 50.5

对具有 500000 个条目的向量使用这种方法会在几秒钟内填满我的内存并使我的电脑无法使用。或者,我尝试使用roll_mean from RcppRoll,但无法提出解决方案,因为RcppRoll::roll_mean只接受整数作为窗口长度。

那么,大规模解决这个问题的最佳方法是什么?任何帮助是极大的赞赏。


我们可以做的

cumsum(x) / seq_along(x)
#  [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0 10.5
# [21] 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5
# [41] 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5 25.0 25.5 26.0 26.5 27.0 27.5 28.0 28.5 29.0 29.5 30.0 30.5
# [61] 31.0 31.5 32.0 32.5 33.0 33.5 34.0 34.5 35.0 35.5 36.0 36.5 37.0 37.5 38.0 38.5 39.0 39.5 40.0 40.5
# [81] 41.0 41.5 42.0 42.5 43.0 43.5 44.0 44.5 45.0 45.5 46.0 46.5 47.0 47.5 48.0 48.5 49.0 49.5 50.0 50.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在大型数据集上改变窗口大小的滚动平均值 的相关文章

随机推荐

  • Mercurial 显示文件修改不正确

    当我克隆 Mercurial 存储库时 它通常会显示文件已被修改 而实际上尚未修改 当我执行以下步骤时可能会发生这种情况 hg clone
  • 片段中的列表视图不起作用

    这是我的片段代码 public class LeftFragment extends ListFragment ArrayList
  • 带参数的装饰器[重复]

    这个问题在这里已经有答案了 代码如下 def my dec func def wrap w t func w return t 4 return wrap my dec def testing n return n new testing
  • C# Web 浏览器选择列表项单击

    我正在尝试使用以下方法从选择列表框中选择项目 var elements webBrowser1 Document GetElementsByTagName select foreach HtmlElement element in elem
  • 什么相当于 C# 中的 Microsoft.VisualBasic.Collection?

    我有一个方法 它需要一个存储过程名称和一个Microsoft VisualBasic Collection http msdn microsoft com en us library microsoft visualbasic collec
  • 在 Laravel 4 中缓存视图输出

    我知道 Blade 已经缓存了所有 Blade 视图的已编译 PHP 但我想更进一步 我正在开发的一个网站被模块化为组件视图 然后在默认控制器中拼凑在一起 每个 小部件 都有自己的视图 很少更改内容 少数频繁更新的除外 因此 我想缓存这些很
  • Jvectormap 在 div 变化时非常小

    我有两个 div 一个是世界地图 另一个是美国地图 当在世界地图上单击美国时 我想隐藏该 div 并将美国地图带入视图 这是可行的 但地图很小 即使缩放按钮的位置表明 div 的大小是它应该的大小 有任何想法吗 如果我从一开始就将两个 di
  • 获取php中两个日期之间的周数

    我想获取给定两个日期的周数 即从 2012 01 01 到 2012 12 31 周数应该恰好落在上面指定的范围内 您可以为此提供建议吗 像这样的东西应该可以正常工作
  • 如何使用 VisualSVN Server 将现有 Visual Studio 解决方案置于源代码管理之下?

    我有一个现有的 Visual Studio 2013 解决方案 我想使用 VisualSVN Server 将其置于源代码控制之下 我安装了 VisualSVN Server 并创建了一个新的空白存储库 他们的入门 https www vi
  • MuPdf 内存不足

    您好 我在项目中使用 MuPdf 库来查看文档 问题是 当您在平板电脑上的 11 英寸 Activity 中打开 3 7 个文档时 我会出现内存溢出 当您加载新文档时 对先前文档的所有引用都会被销毁 但内存中文档的图像不会被删除 对象在 1
  • 如何在软键盘顶部的建议中添加单词

    有什么办法可以在软键盘的建议中添加单词吗 对于特定的 Edittext 字段 我想将名称列表添加到 android 2 0 中软键盘顶部弹出的建议中 有谁知道这是否可能 Here http android git kernel org p
  • 侧边栏增强插件已安装但不起作用

    系统配置 Sublime Text3 内部版本 3065 Ubuntu 14 04 我想在浏览器中添加预览 发现侧边栏增强功能 Be https github com titoBouzout SideBarEnhancements是最好的插
  • SQL Server DATE 作为字符串检索到 pandas 中

    当我将 日期 变量从 SQL Server 拉入 Python Pandas 时 它作为 对象 出现 我已经安装并尝试了多个驱动程序 代码中显示了尝试过的注释驱动程序 每次都有相同的结果 import pandas as pd import
  • 如何将位图纹理的每个像素渲染到 macOS 上屏幕的每个本机物理像素?

    由于现代 macOS 设备默认选择使用缩放后的 HiDPI 分辨率 位图图像在屏幕上会变得模糊 有没有办法将位图逐像素渲染到显示屏的真实本机物理像素 任何 CoreGraphics OpenGL 或 Metal API 都可以在不改变屏幕显
  • 更改位图的色调,同时保留整体亮度

    我正在尝试编写一个函数 让我可以对位图进行红移或蓝移 同时保留图像的整体亮度 基本上 完全红移的位图将具有与原始亮度相同的亮度 但完全呈红色 即所有像素的 G 和 B 值都相等 蓝色着色相同 但 R 和 G 相等 频谱偏移的程度需要在 0
  • 绝对定位和CSS粘性页脚

    这是我的问题 我使用的布局具有粘性页脚 使用 cssstickyfooter com 方法 在我的容器 div 中 我有一个内容 div 其中包含其他四个 div 像这样 div class container div class cont
  • 何时使用.NET BufferedStream 类?

    The MSDN 网站 http msdn microsoft com en us library system io bufferedstream aspx states 缓冲区是内存中的一个字节块 用于缓存数据 从而减少 拨打运营商电话
  • iBeacon 广告 ID 是否唯一?

    我们正在讨论在跨国多个地点使用 iBeaons 进行大规模部署方案 有人提出的问题是 iBeacons 宣传其存在的 ID 是否是唯一的 因为我们的客户希望真正确保应用程序仅响应特定的 iBeacons 而不响应冒充相同 ID 的其他内容
  • 反转字符串中每个单词中的字母

    我有一个包含空格分隔单词的字符串 我想颠倒每个单词中的字母而不颠倒单词的顺序 我想my string成为ym gnirts 这应该有效 words explode string words array map strrev words ec
  • 在大型数据集上改变窗口大小的滚动平均值

    我想计算向量的滚动平均值 其中窗口随着向量中的每个条目而增长 基本上 我想要所有元素的平均值i th i 1 th i 2 th 依此类推 为了使它更清楚 我将提供一个示例和一个适用于较小数据集但不能很好扩展的解决方案 library zo