0

我有从 x[1] 到 x[365] 的 365 个值。对于每个值,我必须考虑一个windoe(x-17,x+17),所以将从x [18]开始。我想执行这样的计算:

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

我的值示例(我的文件中只有一列是值):

            values
     1      0.2
     2      0.3
     .      .
     365    0.4
4

2 回答 2

1

rollmean您可以使用zoo 包的功能获得滚动平均值。

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

要获得滚动标准偏差,您可以使用rollapply并将其sd作为要应用的函数提供

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

从那里您可以使用输出进行感兴趣的转换。

于 2013-02-12T18:30:29.250 回答
1

我想你正在寻找:

      library(zoo)
      rollapply(zoo(rnorm(x18)), 34, function(x)mean(x)/sd(x))
于 2013-02-12T19:11:28.220 回答