我正在使用R中的co2
数据。我首先使用detrend()
。它似乎已经起作用,但它将数据推出时间序列格式,我稍后尝试使用的R函数认为它是一个多变量时间序列而不是单个时间序列。我想把它作为一个单变量的时间序列。这是我的代码。我试过没有运气就改变了数据的格式。
data(co2)
co2
plot(co2)
dmn <- list(month.abb, unique(floor(time(co2))))
co2.m <- matrix(co2, 12, dimnames = dmn)
co2.dt <- pracma::detrend(co2.m, tt = 'linear')
co2.dt <- t(co2.dt)
co2.dt
以下是我遇到的错误之一:
plot.ts(co2.dt)
plotts中的错误(x = x,y = y,plot.type = plot.type,xy.labels = xy.labels,: 不能超过10个系列作为&#34;多个&#34;
使用ts.plot
可以绘制它,但它认为这是一个多变量的时间序列。
我希望以co2
绘图的方式绘制单个时间序列。理想情况下,我想将co2.dt
的格式更改为co2
。
str(co2)
Time-Series [1:468] from 1959 to 1998: 315 316 316 318 318 ...
str(co2.dt)
Time-Series [1:39, 1:12] from 1959 to 1997: -1.74 -2.11 -2.11 -2.11 -1.99 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:12] "Jan" "Feb" "Mar" "Apr" ...
它们都是时间序列,但略有不同,这种差异似乎会破坏我后来尝试使用的很多功能。
答案 0 :(得分:2)
我希望它以
co2
绘图的方式绘制为单个时间序列
co2.dt <- pracma::detrend(co2.m, tt = 'linear')
co2.dt <- ts(as.numeric(co2.dt), start = c(1959,1), frequency=12)
str(co2.dt)
# Time-Series [1:468] from 1959 to 1998: -1.741 -0.608 -0.176 1.127 1.94 ...
plot.ts(co2.dt)
原始答案(关于“{1}}无效的原因”
问题是plot.ts
会在面板上绘制多个时间序列,而不是在单个图表上。然后有一个R可以轻松处理的最大系列数。错误消息告诉您不支持超过10个系列,而您有12个(因为在转置后您正在查看12个月中每年的年度数据)。请改用plot.ts
:
ts.plot
如果您不喜欢ts.plot(co2.dt)
,那么您需要将时间序列分成几个组,每个组都在一个新的图形窗口中。例如,您可以在一个窗口上绘制月份1-6,在另一个窗口上绘制月份7-12。
ts.plot