循环总结 R 中时间序列的观察

Loop to sum observation of a time serie in R

我确定这很明显,但我是 R 的初学者,我花了一个下午的大部分时间试图解决这个问题...

我正在尝试创建一个循环,以五步为单位对我的时间序列中的观察结果求和。

例如:

输入:
1个 2个 3个 4个 5个 5个 6个 6个 7 4个 5个 5个 4个 4个 5个 6个 5个 6个 4个 4

输出: 15 28 23 25

我的时间序列只有一个变量,7825 个观测值。

循环的最终结果是计算每周已实现的波动率。我的观察结果是平方 returns。一旦我有我的循环,我将能够提取平方根并得到我的每周实际波动率。

非常感谢您提供的任何帮助。

H.

我们可以用 gl 创建一个分组变量,并用它来获取 tapply

中的 sum
tapply(input, as.integer(gl(length(input), 5, length(input))), 
          FUN = sum, na.rm = TRUE)
# 1  2  3  4 
# 15 28 23 25 

数据

input <- scan(text = "1 2 3 4 5 5 6 6 7 4 5 5 4 4 5 6 5 6 4 4", what = numeric())

这是另一个使用 sapply + split

的基本 R 选项
> sapply(split(x,ceiling(seq_along(x)/5)),sum)
 1  2  3  4
15 28 23 25

数据

x <- c(1, 2, 3, 4, 5, 5, 6, 6, 7, 4, 5, 5, 4, 4, 5, 6, 5, 6, 4, 4)