У меня есть набор данных следующего типа:
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
Мне нужно рассчитать скользящую sd RET с окном 252 для каждого идентификатора. Для этого функция
roll_sd(df50[,2],252)
Выполняет работу по вычислению скользящего sd, но не учитывает разные идентификаторы. Я знаю, что мог бы написать цикл типа
for (i in 1:dim(list_of_all_ID_to_be_created)) {
roll_sd(df50[i,2],252)
}
а затем прикрепите эти значения к пустому кадру данных. Однако есть ли способ сделать все это сразу, чтобы в моем исходном фрейме данных я просто получил новый столбец «roll_sd», который выполняет расчет для каждого идентификатора? Желаемый результат будет выглядеть так:
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