2013-04-22 3 views
0

빠른 질문이 있습니다. 나는 각 시리즈의 12 개 원소의 평균을 취하고 싶다. 나는 folowing 코드가있다 :Forlus에 추가하는 방법 R

PPrateav = NULL 
for (i in 80) { 
    PPrateav[i] = sum(PPrate[1+(i-1)*12:(i*12)])/12 
} 

나는 문제가 어디 있는지 볼 수 없다. 감사.

+1

예 : (전 1:80)에, 당신은 값의 범위를 줄 필요를 위해 –

+2

'Forlus '란 무엇입니까? 당신이 평균을 구하는 것 같아요. 'zoo' 패키지에서'rollmean' 함수를 보셨습니까? 예 :'rollmean (PPrate, k = 12)'(또는)'rollapply (x, width = 12, mean)' – Arun

+1

아마도'Forlus'는'for 루프'가되어야하지만 철자가 잘못되었습니다. 나는 짐작하고있다. –

답변

2

library(zoo) 
PPrateav <- rollapply(PPrate, width=12, mean, by=12) 

widthby 인수에 대한 자세한 내용은 ?rollapply를 참조 트릭을 할 것입니다.

당신이 정말로 for 루프를 사용하려는 경우,이 새로운 버전으로 원래 루프를 변경해보십시오 :

PPrateav <- NULL 
for (i in 1:floor(length(PPrate)/12)) { 
    PPrateav[i] = mean(PPrate[(1+(i-1)*12):(i*12)]) 
} 
관련 문제