2011-01-28 2 views
8

녀석을 "성장" 당신은 같은 것을 할 일반적으로 할 때, 창

tmp = zoo(rnorm(100), 1:100) 
rollapply(tmp, 10, function(x) quantile(x, 0.05), align="right") 

가 아주 바르게 rollapply 10 개 요소를 사용할 수있는 순간부터 값을 계산 시작됩니다.

불행히도 필자는 슬라이더 창을 사용할 충분한 데이터가있을 때까지 본질적으로 데이터가 증가하는 주된 관찰을 위해 최대한 많은 데이터를 사용합니다. 1, 1 : 2, 1 : 3, 1 : 4 등등. 적어도 10 개의 요소가 있고 평소와 같이 창을 슬라이드 할 때까지.

추한 for 회 돌이보다 더 나은 방법이 있습니까? 동물원의 동물원에서 partial=TRUE으로 지정하면

답변

4

처음에는 9 개의 NAs로 시리즈를 채우는 것이 어떨까요? "ugly for loops"보다 확실히 좋음 :

tmp = zoo(c(rep(NA,9), rnorm(100)), 1:109) 
zoo(rollapply(tmp, 10, function(x) quantile(x, 0.05, na.rm = TRUE), 
       align="right"), 1:100) 
10

rollapply이 가능합니다.

> library(zoo) 
> 
> rollapplyr(zoo(1:20), 3, sum, partial=TRUE) 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
1 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 
+0

'rollapply'와 같은 기능 정의가 변경되었습니다. 함수 호출은 이제 다음과 같이 보일 것입니다 :'rollapply (1:20, 3, FUN = sum, align = "right", partial = TRUE)' – steadyfish

+0

고쳤다. –

관련 문제