Calculates the mean absolute deviation from a center point, typically the sample mean or the median. %% ~~ A concise (1-5 lines) description of what the function does. ~~

MeanAD(x, weights = NULL, center = Mean, na.rm = FALSE)

Arguments

x

a vector containing the observations. %% ~~Describe x here~~

weights

a numerical vector of weights the same length as x giving the weights to use for elements of x.

center

a single numerical value or the name of a function applied to x to be used as center. Can as well be a self defined function. Default is Mean().

na.rm

a logical value indicating whether or not missing values should be removed. Defaults to FALSE.

Value

Numeric value.

Details

The MeanAD function calculates the mean absolute deviation from the mean value (or from another supplied center point) of x, after having removed NA values (if requested): $$\frac{1}{n} \cdot \sum_{i=1}^{n}\left | x_{i}-c \right | \; \; \; \textup{where} \; c=mean(x) \; \textup{or} \; c=med(x)$$
The function supports the use of weights. The default function for the center value Mean() has a weights arguments, too. If a user defined function is used it must be assured that it has a weights argument.

See also

Author

Andri Signorell andri@signorell.net following an idea of Danielle Navarro (aad in the lsr package)

Examples


x <- runif(100)
MeanAD(x)
#> [1] 0.2307437

speed <- c(58, 88, 40, 60, 72, 66, 80, 48, NA)
MeanAD(speed)
#> [1] NA
MeanAD(speed, na.rm=TRUE)
#> [1] 12.5


# using the median as centerpoint
x <- c(2,3,5,3,1,15,23)

MeanAD(x, center=mean)
#> [1] 6.612245
MeanAD(x, center=median)
#> [1] 5.285714

# define a fixed center
MeanAD(x, center=4)
#> [1] 5.428571

# use of weights
MeanAD(x=0:6, weights=c(21,46,54,40,24,10,5))
#> [1] 1.1825