scale_within centers and/or scales variables in a data.frame (using scale) depending on the levels of one or more other variables. By default, variables are standardized (i.e., centered and scaled). A typical application is the within-subject standardization of variables in a repeated measures design.

scale_within(data, variables = NULL, within = NULL, prefix = "",
  center = TRUE, scale = TRUE)



a data.frame.


a character string (or vector) specifying one or more variables that scale is applied to. If unspecified, scale_within will be applied to all variables in data.


an optional character string specifying the name of one or more variables in data. If specified, scale is applied separately for each of the levels of the variable (or for each combination of levels, if more than one variable is specified). Alternatively, a vector directly containing the level values.


a character string that is inserted before each scaled variable. By default (empty string) the original variables are replaced.


argument passed on to scale.


argument passed on to scale.


The original data.frame including the centered and / or scaled variables.

See also

scale for the R base scale function.

mt_standardize for standardizing measures in a mousetrap data object.


ChickWeight_scaled <- scale_within( ChickWeight, variables="weight", within="Chick", prefix="z_")