3

我试图弄清楚endpoints当我的数据只是弱规则时如何选择时间:也就是说,缺少一些观察结果。我有 1 分钟的回报,但缺少一些分钟,我正在尝试转换为 5 分钟的间隔。将如何endpoints决定保留哪些时间?我使用的电话是:

endpoints(ret_1_min_xts, k=5, "minutes")

我的系列看起来像这样,例如:

1986-02-04 09:32:00 1
1986-02-04 09:33:00 2
1986-02-04 09:34:00 3
1986-02-04 09:35:00 4
1986-02-04 09:36:00 5
1986-02-04 09:37:00 6
1986-02-04 09:38:00 7
1986-02-04 09:39:00 8
1986-02-04 09:40:00 9
1986-02-04 09:41:00 10
1986-02-04 09:42:00 11
1986-02-04 09:45:00 12
...

调用endpoints返回:

1986-02-04 09:34:00
1986-02-04 09:39:00 
1986-02-04 09:42:00 
1986-02-04 09:49:00
1986-02-04 09:54:00
...

我正在尝试查看的源代码,endpoints但似乎该函数在 C 中并通过调用.Call;我理解正确吗?如果有人可以解释所使用的方法,那将非常有帮助。

4

1 回答 1

3

如上面评论中的回答并直接取自 endpoints.c 源代码,该函数返回以下内容:

c(0,which(diff(_x%/%on%/%k+1) != 0),NROW(_x))

在哪里_x = .index(my_xts)

这实际上是做什么的?关于我对endpoints函数的调用:

里面的东西diff首先删除秒,然后将东西移动到 k 分钟增量(所有这些都使用整数除法)。 diff然后简单地记下您更改为下一个增量的点并which返回发生增量的那些点。实际上,这只是返回每 5 分钟间隔的最后一个点(在我的通话中 k=5)

于 2012-08-12T17:08:01.427 回答