2013-02-13 50 views
0

我想R中應用分解功能每週收集data.For比如我給上了我與我正在沿着錯誤的工作例如:如何使用R中的分解函數來分解每週的時間序列數據?

>v<-c(50,45,23,21,32,24,42) 
>vtimeseries<-ts(v) 
>vtimeseries 
Time Series: 
Start = 1 
End = 30 
Frequency = 1 
>decompose(vtimeseries) 
Error in decompose(vts) : time series has no or less than 2 periods 

誰能幫我出了這問題。並且還介紹瞭如何設置ts()中的頻率值。我想分解時間序列數據爲

Monday  Tuesday  Wednesday  Thursday  Friday  Saturday  Sunday 
...   ....   ....   ...   ...   ...  ... 

我這樣做的主要目的是找到時間序列數據的季節和趨勢分量。

+0

你的問題不清楚?您是否試圖將數據分成7列 - 每個工作日一個? – 2013-02-13 06:07:17

+0

不完全....我想實現ts()函數和分解函數,因爲我已經採取了一些隨機設置的數據。我的問題是,如何使用ts()函數使其像時間序列數據每週(在我的情況),當我們對它應用分解函數時,上面的錯誤就不會出現。希望我現在清楚 – Saurabh 2013-02-13 06:13:24

+0

你有沒有試過'ts(v,頻率= 7)'。沒有正確的數據,你仍然不清楚你想要達到什麼目的。也許給實際的數據樣本可能有助於潛在的幫手 – 2013-02-13 06:31:19

回答

0

如果您正在尋找一個示例來圍繞頻率的相關性和分解,請嘗試以下示例。嘗試更改「頻率」值。它會幫助你認識到究竟發生了什麼。上述

library(quantmod) 
    from.dat <- as.Date("01/01/08", format="%m/%d/%y") 
    to.dat <- as.Date("12/31/13", format="%m/%d/%y") 
    getSymbols("GOOG", src="google", from = from.dat, to = to.dat) 
    mGoog <- to.monthly(GOOG) 
    googOpen <- Op(mGoog) 
    ts1 <- ts(googOpen,frequency=12) 
    plot(ts1,xlab="Years+1", ylab="GOOG") 
    plot(decompose(ts1),xlab="Years+1") 
1

通過Pramit喬杜裏給出的例子似乎不工作了,由於在GOOG XTS的NA列引起to.monthly(GOOG)Removing NA columns in xts

getSymbols("GOOG", src="google", from = from.dat, to = to.dat) 
GOOG <- GOOG[,-which(apply(is.na(GOOG), 2, all))] 
mGoog <- to.monthly(GOOG) 

似乎扔了一個錯誤 借用代碼排除問題。