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, …) # S3 method for default stack(x, …) # S3 method for data.frame stack(x, select, …)
unstack(x, …) # S3 method for default unstack(x, form, …) # S3 method for data.frame unstack(x, form, …)
- a list or data frame to be stacked or unstacked.
- an expression, indicating which variable(s) to select from a data frame.
- 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 the data frame method for
- further arguments passed to or from other methods.
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. Note that
stack applies to vectors (as determined by
is.vector): non-vector columns (e.g., factors) will be
ignored (with a warning as from R 2.15.0). Where vectors of
different types are selected they are concatenated by
unlist whose help page explains how the type of the
result is chosen. These functions are generic: the supplied methods handle data frames
and objects coercible to lists by
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:
xthe observation originated.
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