移动平均线与累计平均值或?

时间:2015-11-19 21:05:35

标签: r statistics average moving-average

这可能是一个基本问题,但我一直在搜索许多列表以找到我要找的东西。基本上,让我描述一下数据集。我有一组来自票务系统的数据,代表已解决的票证。我正在考虑随着时间的推移解决门票的时间,看看我的解决时间是否正在上升,下降或平稳。每天有很多门票(约200左右)。我每天都会提取所有数据并计算解决故障单所需的时间。我用R做这个,所以我最终得到一个看起来像这样的数据框:

1/1/2015  INC00001   1.23
1/1/2015  INC00002   .089

等等(每天有很多票,每张票都有一个解决时间)。我想要做的是确定某种运行平均值。我真正喜欢的是随着时间的推移显示趋势的线图。我玩过移动平均线等等,但我的图表仍然很不稳定。我确信R中内置了一些随时间推移的移动/运行/累积平均值,但我仍然无法找到我想要的内容。

我希望看到的图表类似于以下内容:

[Chart1

但更顺畅,有点像股票代码,所以我知道当前整体平均值是多少。任何人都可以指出我将要做什么以及如何在R中这样做?非常感谢!!

1 个答案:

答案 0 :(得分:1)

使用 dplyr 可以快速轻松地完成此操作。这是一些示例数据:

library(dplyr)

x <- 1:3000
y <- 10 + 1:3000 / 300 + 2 * sin(pi * x / 150) + rnorm(3000, sd = 0.1)

df <- data.frame(x = x, y = y)

这是一个plot of the data。以下是如何使用 dplyr 创建滚动平均值和累积平均值:

df.avgs <-
   df %>%
   mutate(
      roll.avg = ( y + lag(y, 1) + lag(y, 2) + lag(y, 3) +
                      lag(y, 4) + lag(y, 5) + lag(y, 6) + lag(y, 7) +
                      lag(y, 8) + lag(y, 9) ) / 10,
      cum.avg = cummean(y)
   )

这是一个plot of the rolling average。可悲的是,我没有足够的声誉来添加累积平均值的第三个链接。请注意,这种计算滚动平均值的方法不能容忍NA值。原始数据中的一个NA将在滚动平均数据中创建十个NA值。您可以通过首先用插值替换NA值来解决这个问题。