stack                 package:utils                 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, ...)
     ## 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, ...)

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:

     require(stats)
     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

