2015-10-14 50 views
2

採取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行。

回答

0

這是一個不正確的範圍規格。 [.xts使用.parseISO8601分析這些類型的值的i,和?.parseISO8601節說,

沒有檢查做測試正確構造ISO格式字符串。 這必須由用戶正確輸入,以免發生不好的事情。

雖然X["2007-01-2::"]X["2007-1::"]都能正常工作,但它們根據ISO-8601標準錯誤地指定。日期時間的每個組件都有一個固定的寬度,應該填零。