我的目标是获得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)
有人知道我的代码有什么问题吗?
答案 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)