以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
使用.parseISO8601
为i
解析这些类型的值,?.parseISO8601
的注释部分说,
没有检查来测试正确构造的ISO格式字符串。这必须由用户正确输入,否则可能会发生不好的事情。
虽然X["2007-01-2::"]
和X["2007-1::"]
都可以工作,但是根据ISO-8601标准,它们被错误地指定。datetime的每个组件都有一个固定的宽度,并且应该为零填充。