Период постоянного размера. Применять с нерегулярно разнесенными конечными точками в R - PullRequest
2 голосов
/ 03 апреля 2012

У меня неправильный временной ряд, содержащийся в xts, и отдельный вектор временного индекса (конечные точки). Я хочу рассчитать статистику для каждой индексной точки на основе предыдущих 5 секунд для каждой конечной точки. Итак, начальная точка должна быть за 5 секунд до каждой конечной точки. Эти периоды могут перекрываться.

Я не могу найти какую-либо функцию от * применения семьи, выполняющей эту работу. Как я могу это сделать? Должен ли я вручную написать цикл для этого?

Вот моя скромная иллюстрация, где черный - это данные xts, а красный - конечные точки. Я хочу получить результат функции для каждой красной точки, рассчитанной для всех черных точек с интервалом в 5 секунд.

overlapping intervals

1 Ответ

1 голос
/ 03 апреля 2012

Нет готовой функции для этого, но довольно легко написать свою собственную.

# Example data
library(xts)
data(sample_matrix)
x <- as.xts(sample_matrix)
# Example function
# Calculate the mean of the last 5 days of each month, returning
# an xts object indexed at the endpoint
myFunction <- function(i, y) xts(t(colMeans(y[(i-4):i,])), index(y)[i])
# Use lapply to call your function at each endpoint
# (removing first endpoint, since it equals zero) 
do.call(rbind, lapply(endpoints(x, 'months')[-1], FUN=myFunction, y=x))
...