stack {utils}R Documentation

Stack or Unstack Vectors from a Data Frame or List


Stacking vectors concatenates multiple vectors into a single vector along with a factor indicating where each observation originated. Unstacking reverses this operation.


stack(x, ...)
## Default S3 method:
stack(x, ...)
## S3 method for class 'data.frame':
stack(x, select, ...)

unstack(x, ...)
## Default S3 method:
unstack(x, form, ...)
## S3 method for class 'data.frame':
unstack(x, form, ...)


x object to be stacked or unstacked
select expression, indicating variables to select from a data frame
form a two-sided formula whose left side evaluates to the vector to be unstacked and whose right side evaluates to the indicator of the groups to create. Defaults to formula(x) in
... further arguments passed to or from other methods.


The stack function is used to transform data available as separate columns in a data frame or list into a single column that can be used in an analysis of variance model or other linear model. The unstack function reverses this operation.


unstack produces a list of columns according to the formula form. If all the columns have the same length, the resulting list is coerced to a data frame.
stack produces a data frame with two columns

values the result of concatenating the selected vectors in x
ind a factor indicating from which vector in x the observation originated


Douglas Bates

See Also

lm, reshape


formula(PlantGrowth)         # check the default formula
pg <- unstack(PlantGrowth)   # unstack according to this formula
stack(pg)                    # now put it back together
stack(pg, select = -ctrl)    # omitting one vector

[Package utils version 2.5.0 Index]