我试图找出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
调用;我理解正确吗?如果有人能够解释所使用的方法,那将非常有用。
答案 0 :(得分: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)