簡體   English   中英

如何在R中將數據幀轉換為時間序列?

[英]How to transform dataframe into time series in R?

我有一個名為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對象,其列為一月至十二月的月份,行為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".

任何意見,將不勝感激。 謝謝!

data <- sample(20,60,T)
data <- ts(data,freq=12,start=c(1991,1))

提示:請附上您收到的警告/錯誤消息,以闡明“似乎沒有用”的意思。 但是,您的示例很好且可重現,但我得到了一個錯誤:不能將10個以上的序列繪制為“多個”。 您的問題是將數據保留為矩陣。 將上面的最后一行代碼替換為:

data <- ts(as.vector(t(data)),freq=12,start=c(1991,1))

它進行轉置(以使其按行矢量化),然后在傳遞給ts()之前轉換為單個矢量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM