Smooth Numerical Data

Description

Helper function to smooth numerical data using methods specified by the user.

Usage

1
2
smth(x = stop("Numeric Vector 'x' is Required"),
  method = getOption("smoother.method"), ...)

Arguments

x

numeric vector of values to smooth

method

one of 'gaussian', 'sma', 'ema', 'dema' or 'wma'.

...

any other arguments to be passed to each specific smoothing methodology.

Details

At this moment in time, the only method is the 'gaussian' window function (similar to the Matlab Gaussian Window Smoothing Function) and a number of moving averages 'sma', 'ema', 'dema' or 'wma'. These are functions that allows the user to smooth an input vector, returning vector of the same length as the input. This can also be achieved using the specific smth.gaussian function.

Value

a numeric vector of same length as input 'x' vector

References

If the 'method' argument is equal to 'gaussian', then this function is a port of the function described here: http://goo.gl/HGM47U, very loosly based of code which has also been ported to c++ here: http://goo.gl/NK79bJ

See Also

Refer to specific man files: smth.gaussian, SMA, EMA, DEMA or WMA

Examples

1
2
3
4
5
6
7
8
#Prepare Data
n  = 1000
x  = seq(-pi,pi,length.out=n)
y  = sin(x) + (runif(length(x))*0.1) #NOISY DATA
ys = smth(y,window = 0.1,method = "gaussian") #SMOOTHING
plot(x,y,type="l",col="red")
lines(x,ys,col="black",lwd=3)
title("Example Smoothing of Noisy Data")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.