为什么xts的endpoints()会忽略区间右边界的数据?

Why does xts' endpoints() ignores the data on the right boundary of the interval?

我在变量 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.

相反,它 returns c(0,2,5,6)。这种行为背后的逻辑是什么?

那么前导零的原因是什么?它存在于文档中,但为什么?

你的问题前提不正确。 endpoints() 不会忽略区间右边界的数据。您的示例数据仅包含左侧的值;即您数据中的所有观察结果都发生在每分钟的开始。如果它们确实是右边界,则意味着“2000-01-01 00:00:00.000”是 1999 年的最后一个观测值。

第一个元素需要为零只是因为 endpoints() 的输出在其他函数中的使用方式。假设地,可以重构代码以删除第一个元素为零的要求。我说的是假设,因为重构可能会破坏其他代码,这让我不愿意这样做。