2012-04-03 2 views
2

xts에 포함 된 불규칙한 시계열과 별도의 시간 인덱스 벡터 (끝점)가 있습니다. 모든 끝점에 대해 앞의 5 초를 기준으로 모든 인덱스 지점에 대한 통계를 계산하려고합니다. 따라서 출발점은 모든 종점보다 5 초 앞에 있어야합니다. 이 기간은 중복 될 수 있습니다.불규칙한 간격의 끝 점이있는 일정 크기의주기가 적용됩니다.

해당 기능을 수행하는 * apply family에서 어떤 기능을 찾을 수 없습니다. 어떻게해야합니까? 수동으로 루프를 작성해야합니까?

검은 색이 xts 데이터이고 빨간색이 끝점 인 나의 겸손한 그림입니다. 5 초 간격으로 모든 검정 점에서 계산 된 모든 적색 점에 대해 함수의 결과를 얻고 싶습니다.

overlapping intervals

답변

1

이 할 수있는 준비가 만든 기능이 아니지만, 자신의 쓰기 상당히 쉽습니다.

# 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)) 
+0

고맙습니다! 내 마음을 다차원 적으로 만드는 데는 시간이 걸렸습니다. 그것없이 해결책을 이해할 수 없었다 :) – gadubishe