【发布时间】:2018-04-15 19:44:40
【问题描述】:
我花了很多时间寻找答案,但运气不佳。我有一些时间序列数据,需要折叠并创建该数据中每 n 行的滚动平均值。看起来这在动物园里是可能的,也许是 hmisc,我相信其他包。我需要平均行 1,2,3 然后 3,4,5 然后 5,6,7 等等。我的数据看起来像这样并且有数千个观察结果:
id time x.1 x.2 y.1 y.2
10 1 22 19 0 -.5
10 2 27 44 -1 0
10 3 19 13 0 -1.5
10 4 7 22 .5 1
10 5 -15 5 .33 2
10 6 3 17 1 .33
10 7 6 -2 0 0
10 8 44 25 0 0
10 9 27 12 1 -.5
10 10 2 11 2 1
我希望它在完成后看起来像这样:
id time x.1 x.2 y.1 y.2
10 1 22.66 25.33 -.33 -.66
10 2 3.66 13.33 .27 .50
时间变量 1 实际上是 1,2,3 的平均时间,2 是 3,4,5 的平均时间,但此时保持时间变量并不重要。我需要按 id 分组,因为它最终会改变。我能弄清楚如何成功做到这一点的唯一方法是使用 Lag() 并使新行领先 1 和另一行领先 2,然后在各列中取平均值。之后你必须删除每隔一行
1 NA NA
2 1 NA
3 2 1
4 3 2
5 4 3
使用 123 和 345 并删除 234... 为每个 var 执行此操作将是令人发指的,尤其是在我收集新数据时。
有什么想法吗?非常感谢您的帮助
【问题讨论】:
标签: r time-series lag data-manipulation