L oop для суммирования наблюдения за временной интервал ie в R - PullRequest
1 голос
/ 06 августа 2020

Я уверен, что это очень очевидно, но я новичок в 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 *

В

Ответы [ 2 ]

5 голосов
/ 06 августа 2020

Мы можем создать группирующую переменную с 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())
3 голосов
/ 06 августа 2020

Вот еще один базовый вариант R с использованием 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)
...