colDevs function

Calculate column deviations from central values

Calculate column deviations from central values

colDevs calculates the column deviations of data values from a central value (mean, median, etc.), possibly stratified by a grouping variable.

colDevs(x, group, center = mean, group.var = FALSE, ...)

Arguments

  • x: A numeric data frame or matrix.
  • group: A factor (or variable that can be coerced to a factor) indicating the membership of each observation in x in one or more groups. If missing, all the data is treated as a single group. You can also specify the interaction of two or more factors.
  • center: A function used to center the values (for each group if group is specified. The function must take a vector argument and return a scalar result.
  • group.var: logical. If TRUE, the group variable containing factor levels is prepended to the matrix of deviations.
  • ...: Arguments passed down

Returns

By default, it returns a numeric matrix containing the deviations from the centering function. If levels==TRUE, it returns a data.frame containing the group factor prepended to the matrix of deviations.

Details

Conceptually, the function is similar to a column-wise sweep, by group, allowing an arbitrary center

function.

Non-numeric columns of x are removed, with a warning.

Examples

data(iris) Species <- iris$Species irisdev <- colDevs(iris[,1:4], Species, mean) irisdev <- colDevs(iris[,1:4], Species, median) # trimmed mean, using an anonymous function irisdev <- colDevs(iris[,1:4], Species, function(x) mean(x, trim=0.25)) # include the group factor in output irisdev <- colDevs(iris[,1:4], Species, group.var = "Species") head(irisdev) # no grouping variable: deviations from column grand means # include all variables (but suppress warning for this doc) irisdev <- suppressWarnings( colDevs(iris) ) # two-way design colDevs(Plastic[,1:3], Plastic[,"rate"]) colDevs(Plastic[,1:3], Plastic[,"additive"]) # cell deviations #' colDevs(Plastic[,1:3], interaction(Plastic[,c("rate", "additive")]))

See Also

colMeans for column means,

sweep

Author(s)

Michael Friendly