【发布时间】:2020-02-12 18:33:59
【问题描述】:
我有以下类型的数据集:
ID date RET
1 10026 20171227 -0.003768
2 10026 20171228 0.008958
3 10027 20171227 -0.001447
4 10027 20171228 -0.017454
5 10028 20171227 -0.009988
6 10028 20171228 0.013813
我需要计算 RET 的滚动标准差,每个 ID 的窗口为 252。为此,函数
roll_sd(df50[,2],252)
计算滚动 sd 的工作,但不考虑不同的 ID。我知道我可以写一个循环类型
for (i in 1:dim(list_of_all_ID_to_be_created)) {
roll_sd(df50[i,2],252)
}
然后将此值附加到空数据框。但是,有没有办法一次完成所有操作,以便在我的原始数据框中我只得到一个新列“roll_sd”,它为每个 ID 进行计算?期望的结果如下:
ID date RET roll_sd
1 10026 20171227 -0.003768 0.18667
2 10026 20171228 0.008958 0.21667
3 10027 20171227 -0.001447 0.18668
4 10027 20171228 -0.017454 0.32542
5 10028 20171227 -0.009988 0.87763
6 10028 20171228 0.013813 0.11221
【问题讨论】:
标签: r grouping rolling-computation