循环总结 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)
我确定这很明显,但我是 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
> 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)