Later on, other methods will be added, and ctdDecimate() will be retired in favour of this, a more general, function. The filtering is done with the filter() function of the stats package.

decimate(x, by = 10, to, filter, debug = getOption("oceDebug"))



an oce object.


an indication of the subsampling. If this is a single number, then it indicates the spacing between elements of x that are selected. If it is two numbers (a condition only applicable if x is an echosounder object, at present), then the first number indicates the time spacing and the second indicates the depth spacing.


Indices at which to subsample. If given, this over-rides by.


optional list of numbers representing a digital filter to be applied to each variable in the data slot of x, before decimation is done. If not supplied, then the decimation is done strictly by sub-sampling.


a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.


An oce object that has been subsampled appropriately.


Only a preliminary version of this function is provided in the present package. It only works for objects of class echosounder, for which the decimation is done after applying a running median filter and then a boxcar filter, each of length equal to the corresponding component of by.

See also

Filter coefficients may be calculated using makeFilter(). (Note that ctdDecimate() will be retired when the present function gains equivalent functionality.)


library(oce) data(adp) plot(adp)
adpDec <- decimate(adp,by=2,filter=c(1/4, 1/2, 1/4))
#> Warning: decimate(adp) not working yet ... just returning the adp unchanged