2013-02-12 87 views
0

我有365個值從x [1]到x [365]。對於每個值,我必須考慮一個windoe(x-17,x + 17),所以將從x [18]開始。我想執行的計算是這樣的:我的價值觀如何計算R中窗口移動窗口(來回)和標準偏差的平均值?

x=1:365 
first period = (x[18]-17 vaues,x[18]+17 values) 

例如(只有一個列在我的文件中存在是值):

  values 
    1  0.2 
    2  0.3 
    .  . 
    365 0.4 
+0

這些是實際存儲作爲獨立變量命名爲X1,X2,...,X365?或者是數據框中的這些行/列? – Dason 2013-02-12 18:16:18

回答

1

你可以滾動使用rollmean功能的意思動物園包。

# make some fake data 
mydat <- 1:365 
library(zoo) 
mymeans <- rollmean(mydat, k = 35) 

爲了讓你可以使用rollapply並提供其sd作爲函數應用

mysds <- rollapply(mydat, 35, FUN = sd) 

從那裏,你可以使用輸出做感興趣的轉型滾動標準偏差。

+0

好的 - 我改變了窗口的大小。那應該會更好... – Dason 2013-02-12 21:57:19

1

我認爲你正在尋找:

 library(zoo) 
     rollapply(zoo(rnorm(x18)), 34, function(x)mean(x)/sd(x)) 
+0

@巴里什麼??! x18指的是你的問題是什麼嗎?這就是說x18變爲1:365。 – agstudy 2013-02-12 20:36:26

+0

@巴里是的,但你鍵入x18不是x [18],..你是否用1:365嘗試。 – agstudy 2013-02-12 21:10:16