指定一个月份子集范围内的日期(错误?)

时间:2015-10-14 10:04:19

标签: r xts

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中的错误?还是错误的范围规范?

X["2007-01-02::"]X["2007-01-2::"]都可以X["2007-1::"],但X["2007-1-2::"]也会返回0行。

1 个答案:

答案 0 :(得分:0)

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

  

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

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