我有从 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
我有从 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
rollmean
您可以使用zoo 包的功能获得滚动平均值。
# make some fake data
mydat <- 1:365
library(zoo)
mymeans <- rollmean(mydat, k = 35)
要获得滚动标准偏差,您可以使用rollapply
并将其sd
作为要应用的函数提供
mysds <- rollapply(mydat, 35, FUN = sd)
从那里您可以使用输出进行感兴趣的转换。
我想你正在寻找:
library(zoo)
rollapply(zoo(rnorm(x18)), 34, function(x)mean(x)/sd(x))