2017-10-03 22 views
1

R에서 데이터 세트의 (재무) 연도 평균을 어떻게 계산합니까?R 연대순 연평균 롤업

내 데이터의 형식은 : 나는 지금까지 오일 롤링 평균을 계산 한

library(zoo) 
DF=data.frame(Day=seq(as.POSIXct("2017-03-01"), as.POSIXct("2017-06-07"),"day"),Value=rnorm(98,1,2)) 
DF$`5day_rolling`=rollmean(DF$Value,5,fill=NA,align="left") 

DF$Financial_yr=as.numeric(format(DF$Day, "%Y")) + (format(DF$Day, "%m") >= "04") 

. 올해의 평균에 사용되는 회계 연도 열을 추가했습니다. 그래서, 제가 원했던 것은 FY1의 첫 번째 날의 첫 번째 값과 동일한 값으로 시작하는 추가 열입니다. 두 번째 값은 처음 2 일의 평균이고 세 번째 값은 세의 평균입니다.

답변

3

ave을 사용하여 재무 연도별로 그룹화 한 다음 cumsum(x)/seq_along(x)을 사용하여 연간 평균을 계산하십시오. 패키지가 사용되지 않습니다.

cumavg <- function(x) cumsum(x)/seq_along(x) 
transform(DF, avg_ytd = ave(Value, Financial_yr, FUN = cumavg)) 
+0

감사합니다. – sym246