У меня есть набор данных следующего типа:
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 с окном 252 для каждого идентификатора. Для этого функция
roll_sd(df50[,2],252)
выполняет работу по вычислению скользящего сд, но не учитывает другой идентификатор. Я знаю, что могу написать al oop типа
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