gpt4 book ai didi

r - merge.xts 在合并每周系列时产生错误结果

转载 作者:行者123 更新时间:2023-12-02 00:09:32 26 4
gpt4 key购买 nike

我正在尝试合并两个 xts 对象。一个是使用 quantmod 生成的,另一个是在 data.frame 上使用 xts() 手动生成的。

> class(rets.weekly)
[1] "xts" "zoo"
> class(result.weekly.xts)
[1] "xts" "zoo"
> tail(rets.weekly)
ret
2013-03-22 0.002231087
2013-03-26 -0.007846839
2013-04-06 -0.007501789
2013-04-12 0.001569891
2013-04-20 -0.023628035
2013-04-21 0.005055358
> tail(result.weekly.xts)
prediction.date standard.Deviation
2013-03-22 "2013-03-22" "0.01681222"
2013-03-26 "2013-03-26" "0.01578790"
2013-04-06 "2013-04-06" "0.01578170"
2013-04-12 "2013-04-12" "0.01556793"
2013-04-20 "2013-04-20" "0.01504504"
2013-04-21 "2013-04-21" "0.01696417"
> tail(merge.xts(result.weekly.xts , rets.weekly))
prediction.date standard.Deviation ret
2013-04-07 NA NA -0.007501789
2013-04-12 NA 0.01556793 NA
2013-04-13 NA NA 0.001569891
2013-04-20 NA 0.01504504 NA
2013-04-21 NA 0.01696417 -0.023628035
2013-04-22 NA NA 0.005055358
Warning message:
In merge.xts(result.weekly.xts, rets.weekly) : NAs introduced by coercion
> tail(merge.zoo(result.weekly.xts , rets.weekly))
<< R QUIT>>

如您所见,日期是相同的。这两个集合都是 xts 对象。对 merge.xts 的调用产生了错误的输出。我不知道这些日期是从哪里来的。当尝试使用 merge.zoo 合并时,R 只是退出(蓝屏样式)。

> sessionInfo()
R version 2.15.3 (2013-03-01)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Hebrew_Israel.1255 LC_CTYPE=Hebrew_Israel.1255 LC_MONETARY=Hebrew_Israel.1255 LC_NUMERIC=C LC_TIME=Hebrew_Israel.1255

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] quantmod_0.4-0 TTR_0.22-0 xts_0.9-3 zoo_1.7-9 Defaults_1.1-1

loaded via a namespace (and not attached):
[1] grid_2.15.3 lattice_0.20-13 tools_2.15.3

最佳答案

这是一个长期存在的时区错误。时区未传递到应传递给 as.Date 调用。差不多一个月前,我通过电子邮件为它提交了一个补丁。在 xts/R/index.R 中,第 29:31 行当前是:

if(value[[1]] == "Date")
#return( as.Date(.index(x)/86400) )
return( structure(.index(x) %/% 86400, class="Date"))

应该改为

if(value[[1]] == "Date")
as.Date(as.POSIXct.numeric(attr(x, "index"), origin=as.Date('1970-01-01')),
tz=indexTZ(x))

此外,xts:::as.POSIXct.numeric 应该更新以匹配基础 R。

关于r - merge.xts 在合并每周系列时产生错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16171095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com