在具有一个数字月份的范围子集中指定日期(错误?)

Specifying date in a range subsetting with one figure month (bug?)

xts 范围子集为例:

library(xts)
X <- xts(1:10, seq(as.Date("2007-01-02"),as.Date("2007-01-11"), 1))
X
           [,1]
2007-01-02    1
2007-01-03    2
...
2007-01-10    9
2007-01-11   10

X["2007-1::"]
           [,1]
2007-01-02    1
2007-01-03    2
...
2007-01-10    9
2007-01-11   10

X["2007-1-02::"]
     [,1]

最后一个命令returns 0 行。

这是 xts 中的错误?或者它的范围规格有误?

X["2007-01-02::"]X["2007-01-2::"] 都像 X["2007-1::"] 一样工作,但是 X["2007-1-2::"] returns 也有 0 行。

范围指定不正确。 [.xts 使用 .parseISO8601i 解析这些类型的值,?.parseISO8601Note 部分说,

There is no checking done to test for a properly constructed ISO format string. This must be correctly entered by the user, lest bad things may happen.

虽然 X["2007-01-2::"]X["2007-1::"] 都有效,但根据 ISO-8601 标准,它们被错误地指定。日期时间的每个组成部分都有固定的宽度,应该用零填充。