【发布时间】:2012-05-20 08:25:03
【问题描述】:
我有一个使用 xts 的不规则时间序列的事件(帖子),并且我想计算在滚动的每周窗口(或每两周一次或 3 天等)内发生的事件数。数据如下所示:
postid
2010-08-04 22:28:07 867
2010-08-04 23:31:12 891
2010-08-04 23:58:05 901
2010-08-05 08:35:50 991
2010-08-05 13:28:02 1085
2010-08-05 14:14:47 1114
2010-08-05 14:21:46 1117
2010-08-05 15:46:24 1151
2010-08-05 16:25:29 1174
2010-08-05 23:19:29 1268
2010-08-06 12:15:42 1384
2010-08-06 15:22:06 1403
2010-08-07 10:25:49 1550
2010-08-07 18:58:16 1596
2010-08-07 21:15:44 1608
应该产生类似的东西
nposts
2010-08-05 00:00:00 10
2010-08-06 00:00:00 9
2010-08-07 00:00:00 5
为 2 天的窗口。我从PerformanceAnalytics 等查看了rollapply、apply.rolling 等,它们都假设有规律的时间序列数据。我尝试将所有时间都更改为帖子发生的那一天,并使用ddply 之类的东西每天进行分组,这让我很接近。但是,用户可能不会每天都发帖,所以时间序列仍然是不规则的。我可以用 0 填补空白,但这可能会使我的数据膨胀很多,而且它已经相当大了。
我该怎么办?
【问题讨论】:
-
xts 包中目前不存在此问题的解决方案,但这个请求已经足够我开始考虑包含一个解决方案。
-
你有更新@JoshuaUlrich 吗?或者下面答案的效果会用零或 NAs 数据填充缺失的日子,这样我们就可以使用
rollapply?我想我可以使用merge... -
@flodel:这个问题不需要我认为它做了什么(见我的回答)。我以为他们想回顾
n天在他们原始系列中的每一次观察,这是一个更难解决的问题。 -
好吧,我不得不承认我没有仔细阅读问题并停在标题处。我确实在寻找更复杂的案例。我的数据不是超级稀疏,所以我将使用
merge使时间序列有规律地间隔。
标签: r time-series xts zoo