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

作者: naturalsmen (日日夜夜)   2016-08-08 21:02:18
※ 引述《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)
作者: naturalsmen (日日夜夜)   2016-08-08 21:17:00
補充:因為你的原始資料是matrix 所以ts()出來的資料是用來畫multivariate的class
作者: kindarex (花香滿庭園)   2016-08-11 00:10:00
真的真的非常謝謝你!!!超級受用的,新手學到一招了!!版上好溫暖^^

Links booklink

Contact Us: admin [ a t ] ucptt.com