我在t
t <- xts(1:6, order.by=seq(as.POSIXct("2000-01-01 00:01:00", tz="GMT"), length.out = 6, by="1 min"))
中有以下数据
[,1]
2000-01-01 00:01:00 1
2000-01-01 00:02:00 2
2000-01-01 00:03:00 3
2000-01-01 00:04:00 4
2000-01-01 00:05:00 5
2000-01-01 00:06:00 6
我希望endpoints(t, on="mins", k=3)
给我c(0, 3, 6)
对应2000-01-01 00:03:00
,2000-01-01 00:06:00
。
相反,它返回c(0,2,5,6)
。这种行为背后的逻辑是什么?
那么领先零的原因是什么?它是在文档中写的,但它为什么?
答案 0 :(得分:1)
你的问题的前提是不正确的。 endpoints()
不会忽略区间右边界的数据。您的示例数据仅包含左边的值;即,数据中的所有观察都发生在每分钟的开始。如果它们确实是有权限的,那就意味着“2000-01-01 00:00:00.000”是1999年最后一次观察到的价值。
第一个元素只需要为零,因为endpoints()
的输出在其他函数中的使用方式。假设,代码可能会被重构以消除第一个元素为零的要求。我假设说,因为该重构可能会破坏其他代码,这使我不愿意这样做。