stack                  package:base                  R Documentation

Stack or Unstack Vectors from a Data Frame or List

Description:

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

Usage:

     stack(x, ...)
     stack.default(x, ...)
     stack.data.frame(x, select, ...)
     unstack(x, ...)
     unstack.default(x, form, ...)
     unstack.data.frame(x, form = formula(x), ...)

Arguments:

       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 `unstack.data.frame'.

     ...: further arguments passed to or from other methods.

Details:

     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.

Value:

     `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

Author(s):

     Douglas Bates

See Also:

     `lm', `reshape'

Examples:

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

