R包xtsExtra问题来绘制多个ts

时间:2013-03-16 13:04:06

标签: r time-series xts

我的目标是获得1个情节,其中有多个系列,带有自动图例以识别系列。在我的CSV文件中,我从1996年1月开始有5列(农业,食品,燃料,马努,矿石)。

library(xts)
library(xtsExtra)
RuChAgri <- read.csv("https://dl.dropbox.com/u/6421260/Forum/RuChAgri.csv", sep=";")
#transform csv data according to R ts 
RuChAgri <- ts(RuChAgri, start = c(1996, 1), frequency = 1)
#try to get 1 plot with multiple ts with an auto legend
plot.xts(RuChAgri, screens = factor(1, 1), auto.legend = TRUE)

当我运行最后一行时,我收到错误:

Error in try.xts(x) : 
  Error in xts(x.mat, order.by = order.by, frequency = frequency(x),
 .CLASS = "ts",  :   NROW(x) must match length(order.by)

有人知道我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:3)

您的ts对象构造不正确。该系列是每月一次,因此频率应为12,而不是1。

RuChAgri <- ts(RuChAgri, start=c(1996, 1), frequency=12)

然后您应该将其转换为xts对象,然后通过调用plot.xts来调用plot。你真的不应该直接调用plot.xts,即使它试图将你给它的对象转换为xts对象......

x <- as.xts(RuChAgri)
plot(x, screens=factor(1, 1), auto.legend=TRUE)

enter image description here