unlist                 package:base                 R Documentation

Flatten Lists

Description:

     Given a list structure `x', `unlist' simplifies it to produce a
     vector which contains all the atomic components which occur in
     `x'.

Usage:

     unlist(x, recursive = TRUE, use.names = TRUE)

Arguments:

       x: A list or vector.

recursive: logical. Should unlisting be applied to list components of
          `x'?

use.names: logical. Should names be preserved?

Details:

     If `recursive = FALSE', the function will not recurse beyond the
     first level items in `x'.

     `x' can be a vector, but then `unlist' does nothing useful, not
     even drop names.

     By default, `unlist' tries to retain the naming information
     present in `x'. If `use.names = FALSE' all naming information is
     dropped.

     Where possible the list elements are coerced to a common mode
     during the unlisting, and so the result often ends up as a
     character vector.

     A list is a (generic) vector, and the simplified vector might
     still be a list (and might be unchanged).  Non-vector elements of
     the list (for example language elements such as names, formulas
     and calls) are not coerced, and so a list containing one or more
     of these remains a list.  (The effect of unlisting an `lm' fit is
     a list which has individual residuals as components,)

Value:

     A vector of an appropriate mode to hold the list components.

See Also:

     `c', `as.list'.

Examples:

     unlist(options())
     unlist(options(), use.names=FALSE)

     l.ex <- list(a = list(1:5, LETTERS[1:5]), b = "Z", c = NA)
     unlist(l.ex, recursive = FALSE)
     unlist(l.ex, recursive = TRUE)

     l1 <- list(a="a", b=2, c=pi+2i)
     unlist(l1) # a character vector
     l2 <- list(a="a", b=as.name("b"), c=pi+2i)
     unlist(l2) # remains a list

