我有一个名为data
的矩阵,其中包含以下数据:
set.seed(8000)
data <- matrix(sample(20,60,T),5)
data
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 19 9 6 8 7 2 2 10 3 1 6 13
[2,] 7 15 6 19 5 6 17 4 18 17 1 6
[3,] 4 9 8 6 13 16 17 7 13 8 15 18
[4,] 14 15 5 4 19 13 16 6 16 19 11 6
[5,] 5 8 5 3 7 18 12 13 11 8 14 14
我想将此存储为ts
对象,其中列为1月至12月的月份,行数为1991-1995。
data
Jan Feb Mar Apr May Jun July Aug Sep Oct Nov Dec
1991 19 9 6 8 7 2 2 10 3 1 6 13
1992 7 15 6 19 5 6 17 4 18 17 1 6
1993 4 9 8 6 13 16 17 7 13 8 15 18
1994 14 15 5 4 19 13 16 6 16 19 11 6
1995 5 8 5 3 7 18 12 13 11 8 14 14
基本上,如果我的数据以行数和月数作为列存储,那么如何将其存储为时间序列对象?我试过了:
data <- ts(data,freq=12,start=c(1991,1))
但是,这似乎不起作用,因为我以后无法绘制数据。 这是我收到的错误:
error: cannot plot more than 10 series as "multiple".
任何建议都将不胜感激。谢谢!
答案 0 :(得分:1)
data <- sample(20,60,T)
data <- ts(data,freq=12,start=c(1991,1))
答案 1 :(得分:1)
提示:请包含您收到的警告/错误消息,以澄清您的意思&#34;似乎不起作用&#34;。你的例子很好,可以重复,我得到了错误:不能超过10个系列作为&#34;多个&#34;。您的问题是将数据保持为矩阵。将以上代码行替换为:
data <- ts(as.vector(t(data)),freq=12,start=c(1991,1))
转换(以行方式向量化),然后在传递给ts()之前转换为单个向量。