r <- raster(ncols=36, nrows=18)
r[] <- runif(ncell(r))
# 3x3 mean filter
r3 <- focal(r, w=matrix(1/9,nrow=3,ncol=3))
# 5x5 mean filter
r5 <- focal(r, w=matrix(1/25,nrow=5,ncol=5))
# Gaussian filter
gf=matrix(c(1,2,3,2,1,2,3,4,3,2,3,4,5,4,3,2,3,4,3,2,1,2,3,2,1), nrow=5)/65
rg <- focal(r, w=gf)
# The max value for the lower-rigth corner of a 3x3 matrix around a focal cell
f = matrix(c(0,0,0,0,1,1,0,1,1), nrow=3)
f
rm <- focal(r, w=f, fun=max)
Run the code above in your browser using DataLab