unlist {base} | R Documentation |
Given a list structure x
, unlist
simplifies it to
produce a vector which contains all the atomic components
which occur in x
.
unlist(x, recursive = TRUE, use.names = TRUE)
x |
A list or vector. |
recursive |
logical. Should unlisting be applied to list
components of x ? |
use.names |
logical. Should names be preserved? |
unlist
is generic: you can write methods to handle
specific classes of objects, see InternalMethods.
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. Raw and logical vectors can be coerced to integer, integer to double, double to complex and any other atomic mode to character.
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.)
A vector of an appropriate mode to hold the list components.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
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