Moving functions
movingFun.RdHelper function to compute 'moving' functions, such as the 'moving average'
Arguments
- x
A vector of numbers
- n
Size of the 'window', i.e. the number of sequential elements to use in the function
- fun
A function like mean, min, max, sum
- type
Character. One of 'around', 'to', or 'from'. The choice indicates which values should be used in the computation. The focal element is always used. If
typeis 'around', the other elements are before and after the focal element. Alternatively, you can select the elements preceding the focal element ('to') or those coming after it ('from'). For example, to compute the movingFun withn=3for element 5 of a vector; 'around' used elements 4,5,6; 'to' used elements 3,4,5, and 'from' uses elements 5,6,7- circular
Logical. If
TRUE, the data are considered to have a circular nature (e.g. months of the year), and the last elements in vectorxare used in the computation of the moving function of the first element(s) of the vector, and the first elements are used in the computation of the moving function for the last element(s)- na.rm
Logical. If
TRUE,NAvalues should be ingored (byfun)
Examples
movingFun(1:12, 3, mean)
#> [1] NA 2 3 4 5 6 7 8 9 10 11 NA
movingFun(1:12, 3, mean, 'to')
#> [1] NA NA 2 3 4 5 6 7 8 9 10 11
movingFun(1:12, 3, mean, 'from')
#> [1] 2 3 4 5 6 7 8 9 10 11 NA NA
movingFun(1:12, 3, mean, circular=TRUE)
#> [1] 5 2 3 4 5 6 7 8 9 10 11 8
v <- c(0,1,2,3,3,3,3,4,4,4,5,5,6,7,7,8,9,NA)
movingFun(v, n=5)
#> [1] NA NA 1.8 2.4 2.8 3.2 3.4 3.6 4.0 4.4 4.8 5.4 6.0 6.6 7.4 NA NA NA
movingFun(v, n=5, na.rm=TRUE)
#> [1] 1.00 1.50 1.80 2.40 2.80 3.20 3.40 3.60 4.00 4.40 4.80 5.40 6.00 6.60 7.40
#> [16] 7.75 8.00 8.50