r语言 - 在一个数字月的范围子集中指定日期(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]

最后一个命令返回0行。

这是xts中的一个bug ?还是范围规格不对?

X["2007-01-02::"]X["2007-01-2::"]都作为X["2007-1::"]工作,但X["2007-1-2::"]也返回0行。

这是一个不正确的范围规格。[.xts使用.parseISO8601i解析这些类型的值,?.parseISO8601注释部分说,

没有检查来测试正确构造的ISO格式字符串。这必须由用户正确输入,否则可能会发生不好的事情。

虽然X["2007-01-2::"]X["2007-1::"]都可以工作,但是根据ISO-8601标准,它们被错误地指定。datetime的每个组件都有一个固定的宽度,并且应该为零填充。

最新更新