Я уверен, что это очень очевидно, но я новичок в R и потратил большую часть дня, пытаясь решить эту проблему ...
Я пытаюсь создать al oop суммировать наблюдение за мое время ser ie с шагом 5.
например:
ввод: 1 2 3 4 5 5 6 6 7 4 5 5 4 4 5 6 5 6 4 4
вывод: 15 28 23 25
My time ser ie как только одна переменная, и 7825 наблюдений.
Конечность l oop заключается в вычислении недельной реализованной волатильности. Мои наблюдения - это квадратные результаты. Как только у меня будет l oop, я смогу извлечь квадрат root и получить свою еженедельную реализованную волатильность.
Заранее большое спасибо за любую помощь, которую вы можете предоставить *. 1015 *
В
Мы можем создать группирующую переменную с gl и использовать ее для получения sum в tapply
gl
sum
tapply
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())
Вот еще один базовый вариант R с использованием sapply + split
sapply
split
> sapply(split(x,ceiling(seq_along(x)/5)),sum) 1 2 3 4 15 28 23 25
Data
x <- c(1, 2, 3, 4, 5, 5, 6, 6, 7, 4, 5, 5, 4, 4, 5, 6, 5, 6, 4, 4)