【发布时间】:2018-02-20 20:49:05
【问题描述】:
我对 R 相当陌生,我试图在整数组中找到几个月(3、6、9)内的滚动标准偏差。例如,对于一年的数据和三个组,我想找到(Jan、Feb、Mar)、(Feb、Mar、Apr)、(Mar、Apr、五月)等。
在我的数据框 df 中,我有列 NUM:具有要从中查找标准偏差的值,列 NO:定义组的整数,以及列 date:具有每日日期。我还创建了 Yr_Mo 列,它是一个整数,对应于日期的年月。因此,例如,2017 年 1 月的所有日期在 Yr_Mo 列中的值为 1701
一个月,我使用聚合: 新
这是非常基本的。但是,对于 3 个月以上的团体来说,这似乎更复杂。因为并非所有月份的长度都相同,并且有些月份缺少日期,所以我无法对某些时间间隔进行硬编码。我看过很多关于我的类似问题的帖子,但这些问题似乎一般都是关于寻找滚动标准开发人员或分组但不是两者兼而有之。我正在考虑使用诸如rollapply之类的动物园功能,但又看不到如何考虑我的问题的两个部分。
在此先感谢您提供的任何帮助或指向我可能从中学习的文档的指示!
NO date Yr_Mo NUM
1 2017-01-01 1701 3.4
1 2017-01-02 1701 5
1 2017-01-12 1701 4.2
1 2017-01-13 1701 1
1 2017-01-20 1701 6
1 2017-02-03 1702 3.9
1 2017-02-08 1702 5.5
1 2017-02-15 1702 8
1 2017-02-22 1702 1.1
1 2017-02-26 1702 4
1 2017-03-02 1703 1
1 2017-03-07 1703 7.5
1 2017-03-11 1703 2
1 2017-03-20 1703 3.1
1 2017-03-28 1703 2
1 2017-04-01 1704 2
1 2017-04-05 1704 3.5
1 2017-04-12 1704 1
1 2017-04-19 1704 4.1
1 2017-04-23 1704 5
1 2017-05-02 1705 1
1 2017-05-03 1705 4.5
1 2017-05-04 1705 2
1 2017-05-10 1705 6.1
1 2017-05-20 1705 7
2 2017-01-01 1701 3
2 2017-01-02 1701 53
2 2017-01-11 1701 2
2 2017-01-15 1701 4.1
2 2017-01-22 1701 1
2 2017-02-01 1702 8.9
2 2017-02-08 1702 1.5
2 2017-02-15 1702 3
2 2017-02-27 1702 7.2
2 2017-02-28 1702 4
2 2017-03-02 1703 1
2 2017-03-07 1703 5.2
2 2017-03-11 1703 2
2 2017-03-21 1703 1
2 2017-03-28 1703 2
2 2017-04-01 1704 2.4
2 2017-04-05 1704 3.5
2 2017-04-11 1704 1
2 2017-04-19 1704 4.1
2 2017-04-23 1704 3
2 2017-05-02 1705 1.2
2 2017-05-03 1705 4.5
2 2017-05-04 1705 2
2 2017-05-10 1705 6.1
2 2017-05-21 1705 9
【问题讨论】:
-
欢迎来到 Stack Overflow,为了在这里寻求帮助,请考虑how to write a reproducible example,谢谢。
-
没有看到您的数据很难说更多,但一般的想法是您创建一个“组”变量,将您的数据拆分为每个 3 个月以上的非重叠块。那么通常的
group_by语义应该是直截了当的。 -
嗯,我不明白如何使用非重叠块来获得滚动标准开发人员?我添加了我正在使用的数据版本,以防我的问题更清楚。
标签: r standard-deviation rollapply