R/filter_outliers.R

#' Finds outliers using a variety of techniques.
#' @param x TODO
#' @param method TODO
#' @export

find_outliers <- function(x,method="tukeys")
{
	if(method=="tukeys")
	{
		quantiles=quantile(x)[c(2,4)]
		iqr=as.numeric(diff(quantiles))
		outliers_vector=((x > quantiles[1] - 1.5*iqr) & (x < quantiles[1] + 1.5*iqr))
	}
	return(outliers_vector)
}

#' filter_outliers
#' @param x TODO
#' @param method TODO
#' @export
filter_outliers = function(x,method="tukeys")
{
	if(class(x)=="zoo")
	{
		outliers_vector=find_outliers(x,method)
#		print(index(x))
		x_filtered=zoo(coredata(x)[outliers_vector],index(x)[outliers_vector])
	}
	if(class(x)=="spZoo" | class(x)=="station")
	{
		outliers_vector=find_outliers(x@zoo,method)
		x_filtered_zoo=zoo(coredata(x@zoo)[outliers_vector],index(x@zoo)[outliers_vector])
		x_filtered=x
		x_filtered@zoo=x_filtered_zoo
	}
	return(x_filtered)
}

Try the STARStools package in your browser

Any scripts or data that you put into this service are public.

STARStools documentation built on May 2, 2019, 6:48 p.m.