Re: [問題] 求救QQ 時間序列分析繪圖問題

看板R_Language作者 (日日夜夜)時間9年前 (2016/08/08 21:02), 9年前編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《kindarex (花香滿庭園)》之銘言: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 各位高手大家好,謝謝上次高手說先了解時間序列分析 : 也開始在自學練習畫圖,但遇到同一個問題卡很久 : 我的資料是新竹2010-2014年1-12月的平均溫度, : 從Excel表整理好後匯入到Rstudio,開始按照youtube的影片教學 : 練習跟跟影片教學中https://www.youtube.com/watch?v=0gf5iLTbiQM
: 2小時07分開始進行練習 : 以下是我的資料 : > d<-read.csv("C:\\Users\\1503063\\Desktop\\平均溫度.csv") : > d : Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec : 2010 15.9 16.7 19 20.3 25 26.5 29.9 29.6 28.1 24.3 20.9 16.4 : 2011 13.3 15.2 15.5 21 24.3 28.5 28.8 29.2 27.7 24.5 22.7 16.6 : 2012 15.3 14.9 17.4 23.3 25.8 27.8 29.7 28.6 26.8 23.9 21 17.3 : 2013 5.8 17.3 19.2 20.9 26 28.9 28.9 28.9 27.7 24.2 21 16.1 : 2014 15.6 15.4 18 22.3 25.3 28.3 30.4 29.9 29.6 24.7 22 16 : > myts <- ts(d, start=c(2010,1), end=c(2014,12), frequency=12) : > class(myts) (以下吃掉) 大概看了一下影片 你跟講者不同的地方在於你的原始資料設定 雖然你的資料結構跟講者一樣(看起來 但是class卻不同 我猜你是在excel就先把matrix的行列名稱設好 但是如果你注意看影片 會發現講者是讀進numeric的資料 print出來的matrix是經過ts()轉換之後(cola2) 你如果用str(cola2)去看 會發現他的結構長這樣 Time-Series [1:100] from XXXX to XXXX: ... class(cola2) # [1] "ts" 但你的class(d)應該是"matrix" 所以我建議可以這樣做 d <- matrix(runif(36), nrow = 3, ncol = 12) dd <- seq(as.Date("2000/1/1"), by = "month", length.out = 12) dd <- format(dd, "%b") colnames(d) <- dd rownames(d) <- c("2000", "2001", "2002") # your imported data d Jan Feb Mar Apr May Jun Jul Aug Sep 2000 0.06464222 0.4859936 0.19107794 0.06705835 0.9428377 0.1095469 0.5137503 0.50677142 0.64370554 2001 0.27664552 0.1420115 0.08748821 0.23434808 0.6796937 0.8334102 0.3728003 0.30359776 0.18653139 2002 0.75141165 0.3336006 0.88925778 0.08978937 0.8929249 0.2680072 0.9846332 0.03387092 0.09410578 Oct Nov Dec 2000 0.4206437 0.05388721 0.5835108 2001 0.7170996 0.37223711 0.1542709 2002 0.2134047 0.52395925 0.5123901 # transform the matrix to be numeric vector md <- as.numeric(t(d)) class(md) # [1] "numeric" myts <- ts(md, start = c(2000, 1), end = c(2002, 12), frequency = 12) myts Jan Feb Mar Apr May Jun Jul Aug Sep 2000 0.06464222 0.4859936 0.19107794 0.06705835 0.9428377 0.1095469 0.5137503 0.50677142 0.64370554 2001 0.27664552 0.1420115 0.08748821 0.23434808 0.6796937 0.8334102 0.3728003 0.30359776 0.18653139 2002 0.75141165 0.3336006 0.88925778 0.08978937 0.8929249 0.2680072 0.9846332 0.03387092 0.09410578 Oct Nov Dec 2000 0.4206437 0.05388721 0.5835108 2001 0.7170996 0.37223711 0.1542709 2002 0.2134047 0.52395925 0.5123901 class(myts) # [1] "ts" plot(myts) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.217 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1470661341.A.738.html ※ 編輯: naturalsmen (140.113.136.217), 08/08/2016 21:02:43

08/08 21:17, , 1F
補充:因為你的原始資料是matrix 所以ts()
08/08 21:17, 1F

08/08 21:18, , 2F
出來的資料是用來畫multivariate的class
08/08 21:18, 2F

08/11 00:10, , 3F
真的真的非常謝謝你!!!超級受用的,新手學到一招了!!版
08/11 00:10, 3F

08/11 00:10, , 4F
上好溫暖^^
08/11 00:10, 4F
文章代碼(AID): #1Ng8BTSu (R_Language)
文章代碼(AID): #1Ng8BTSu (R_Language)