【发布时间】:2020-01-20 14:27:18
【问题描述】:
我想绘制(特别是 plot.xts)使用 xts 包创建的时间序列。我注意到,包含不同类型(例如日期、数字等)的 xts 对象在某种程度上不会被 plot.xts 函数视为 xts 对象。如果我只使用一种类型(数字),我就没有绘图问题。包含不同类型的 xts-objects 和只包含一种类型的 xts-objects 有什么不同?
这是我的意思的一个小例子:
testDate<-as.Date(c("2014-12-31","2015-01-03","2015-01-04"))
testFrame1<-data.frame(Date=testDate, A=c(1,2,3), B=c(1,3,5))
testXTS1<-as.xts(testFrame1, order.by=testDate)
plot.xts(testXTS1$A)
#Which yields to this error
#Error in plot.xts(testXTS1$A) : 'x' must be a time-series object
然而
class(testXTS1$A)
#states that testXTS1$A is of class "xts" "zoo"
现在,如果我不将 Date 列包含到数据框中,特别是 xts,我在绘制数据时不会遇到任何问题。
testDate<-as.Date(c("2014-12-31","2015-01-03","2015-01-04"))
testFrame2<-data.frame(A=c(1,2,3), B=c(1,3,5))
testXTS2<-as.xts(testFrame2, order.by=testDate)
plot.xts(testXTS2$A)
#Plots everything as intended, no error message
另一个奇怪的事情是,我无法在没有强制转换的情况下使用 testXTS1 进行计算。
testXTS1$A+testXTS1$B
#Error in `+.default`(testXTS1$A, testXTS1$B) : non-numeric argument to binary operator
testXTS2$A+testXTS2$B
#works fine again
所以我的问题是,testXTS1 和 testXTS2 有什么不同?它们似乎都是 xts-objetcts,但在某种程度上 testXTS1 不是?
抱歉,如果这是一个转帖,我还没有找到这个问题的答案。 提前致谢!
问候 最大
【问题讨论】:
标签: r time-series xts