为什么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()
的输出在其他函数中的使用方式。假设地,可以重构代码以删除第一个元素为零的要求。我说的是假设,因为重构可能会破坏其他代码,这让我不愿意这样做。
我在变量 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()
的输出在其他函数中的使用方式。假设地,可以重构代码以删除第一个元素为零的要求。我说的是假设,因为重构可能会破坏其他代码,这让我不愿意这样做。