Skip to content
Prev 325372 / 398503 Next

How to get a running mean result by R?

Hello,

As for Inf, the mean value of Inf and anything is Inf, so there's no way 
to solve it. As for NaN, you can set them to NA prior to calling the 
function.
That leaves us with NA handling. forecast::ma handles NAs, it propagates 
them, as it should. An alternative function using filter() like it was 
proposed would do the same:

ma2 <- function(x, order, sides = 2){
	y <- filter(x, rep(1/order, order), method = "convolution", sides = sides)
	as.numeric(y)
}

x <- 1:10
x[3] <- NA

ma2(x, 3)
forecast::ma(x, 3)


But if instead of NA the problem value is NaN, I prefer forecast::ma.


x[3] <- NaN

ma2(x, 3)
forecast::ma(x, 3)


Finally, if the value is Inf, both functions work as expected.



x <- 1:10
x[3] <- Inf

ma2(x, 3)
forecast::ma(x, 3)

So I would say that forecast::ma does handle the three cases.


Hope this helps,

Rui Barradas

Em 14-06-2013 02:50, Jie Tang escreveu: