R 包含不同类型的xts对象的打印问题

R 包含不同类型的xts对象的打印问题,r,time-series,xts,R,Time Series,Xts,我想绘制(特别是plot.xts)一个用xts包创建的时间序列。我注意到,plot.xts函数不知何故没有将包含不同类型(例如日期、数字等)的xts对象视为xts对象。如果我只使用一种类型(数字),我就不会有绘图问题。包含不同类型的xts对象和只包含一种类型的xts对象之间有什么不同 以下是我的一个小例子: testDate<-as.Date(c("2014-12-31","2015-01-03","2015-01-04")) testFrame1<-data.frame(Date=

我想绘制(特别是plot.xts)一个用xts包创建的时间序列。我注意到,plot.xts函数不知何故没有将包含不同类型(例如日期、数字等)的xts对象视为xts对象。如果我只使用一种类型(数字),我就不会有绘图问题。包含不同类型的xts对象和只包含一种类型的xts对象之间有什么不同

以下是我的一个小例子:

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
现在,如果我没有将日期列包括到数据框中,特别是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
所以我的问题是,testXTS1testXTS2之间有什么不同?它们似乎都是xts对象,但在某种程度上,testXTS1不是吗

很抱歉,如果这是转载,我还找不到这个问题的答案。 提前谢谢

问候
Max

testXTS1是一个xts对象,但由于矩阵还包含日期列,因此它由字符填充。如果只打印testXTS1(见下文),您可以看到所有值都用引号(“)括起来。另一方面,testXTS2是一个xts,因为它的目的是索引是日期,矩阵中填充了数字。这也是计算不起作用的原因

创建xts对象时,需要从data.frame中排除日期列

# printing objects to show difference:
testXTS1
           Date         A   B  
2014-12-31 "2014-12-31" "1" "1"
2015-01-03 "2015-01-03" "2" "3"
2015-01-04 "2015-01-04" "3" "5"

testXTS2
           A B
2014-12-31 1 1
2015-01-03 2 3
2015-01-04 3 5

非常感谢!所以每次我创建一个包含多个数据类型的xts对象时,它都会自动将值更改为字符串?@plsdontjusticeme111,是的,这是正确的。创建xts对象时必须小心。你知道我如何检查我的xts矩阵的特定值的数据类型/类别吗?
testXTS1$A+testXTS1$B
#Error in `+.default`(testXTS1$A, testXTS1$B) : non-numeric argument to binary operator

testXTS2$A+testXTS2$B
#works fine again
# printing objects to show difference:
testXTS1
           Date         A   B  
2014-12-31 "2014-12-31" "1" "1"
2015-01-03 "2015-01-03" "2" "3"
2015-01-04 "2015-01-04" "3" "5"

testXTS2
           A B
2014-12-31 1 1
2015-01-03 2 3
2015-01-04 3 5