我有3個XTS對象其所有indicies是「日期」對象:XTS合併古怪行爲
> a
a
1995-01-03 1.76
1995-01-04 1.69
> b
b
1995-01-03 1.67
1995-01-04 1.63
> c
c
1995-01-03 1.795
1995-01-04 1.690
要驗證的指標是一樣的:
> index(a) == index(b)
[1] TRUE TRUE
> index(a) == index(c)
[1] TRUE TRUE
現在我看到這個奇怪的行爲:
> merge.xts(a,b)
a b
1995-01-03 NA 1.67
1995-01-03 1.76 NA
1995-01-04 NA 1.63
1995-01-04 1.69 NA
雖然下面的合併工作正常:
> merge.xts(a,c)
a c
1995-01-03 1.76 1.795
1995-01-04 1.69 1.690
我不知道這裏可能會發生什麼。任何想法?
更新:
> dput(a)
structure(c(1.76, 1.69), .indexCLASS = "Date", .indexTZ = "", .CLASS = "xts", class = c("xts",
"zoo"), index = structure(c(789168240, 789254580), tzone = "", tclass = "Date"), .Dim = c(2L,
1L), .Dimnames = list(NULL, "a"))
> dput(b)
structure(c(1.67, 1.63), .indexCLASS = "Date", .indexTZ = "", .CLASS = "xts", class = c("xts",
"zoo"), index = c(789109200, 789195600), .Dim = c(2L, 1L), .Dimnames = list(
NULL, "b"))
> dput(c)
structure(c(1.795, 1.69), .indexCLASS = "Date", .indexTZ = "", .CLASS = "xts", class = c("xts",
"zoo"), index = c(789109200, 789195600), .Dim = c(2L, 1L), .Dimnames = list(
NULL, "c"))
事實上,問題是指數不相同(如.index(a) == .index(b)
驗證)。轉換爲數字,然後重新創建xts並重新計算日期asDate
解決了問題。
此對象是從xts的to.daily
方法創建的。
請更換打印'A','B','C'的結果的結果(a)','dput(b)','dput(c)''。 –
謝謝,它現在有效。 – functor
我會考慮to.period。感謝您的背景。 –