filter Linear Filtering on a Time Series
 Description
Applies linear filtering to a univariate time series or to each series separately of a multivariate time series.
Usage
filter(x, filter, method = c("convolution", "recursive"),
       sides = 2, circular = FALSE, init)
 Arguments
| x | a univariate or multivariate time series. | 
| filter | a vector of filter coefficients in reverse time order (as for AR or MA coefficients). | 
| method | Either  | 
| sides | for convolution filters only. If  | 
| circular | for convolution filters only. If  | 
| init | for recursive filters only. Specifies the initial values of the time series just prior to the start value, in reverse time order. The default is a set of zeros. | 
Details
Missing values are allowed in x but not in filter (where they would lead to missing values everywhere in the output). 
Note that there is an implied coefficient 1 at lag 0 in the recursive filter, which gives
y[i] = x[i] + f[1]*y[i-1] + … + f[p]*y[i-p]
No check is made to see if recursive filter is invertible: the output may diverge if it is not.
The convolution filter is
y[i] = f[1]*x[i+o] + … + f[p]*x[i+o-(p-1)]
where o is the offset: see sides for how it is determined. 
Value
A time series object.
Note
convolve(, type = "filter") uses the FFT for computations and so may be faster for long filters on univariate series, but it does not return a time series (and so the time alignment is unclear), nor does it handle missing values. filter is faster for a filter of length 100 on a series of length 1000, for example. 
See Also
Examples
x <- 1:100 filter(x, rep(1, 3)) filter(x, rep(1, 3), sides = 1) filter(x, rep(1, 3), sides = 1, circular = TRUE) filter(presidents, rep(1, 3))
    Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.