ID EN
Vector & List

unlist

R Base 3.6.2

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

Syntax

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

Arguments

Parameter Description
x an R object, typically a list or vector.
recursive logical. Should unlisting be applied to list components of x?
use.names logical. Should names be preserved?

Return Value

NULL or an expression or a vector of an appropriate mode to hold the list components. The output type is determined from the highest type of the components in the hierarchy NULL < raw < logical < integer < double < complex < character < list < expression, after coercion of pairlists to lists.

Details

unlist is generic: you can write methods to handle specific classes of objects, see InternalMethods, and note, e.g., relist with the unlist method for relistable objects. If recursive = FALSE, the function will not recurse beyond the first level items in x. Factors are treated specially. If all non-list elements of x are factor (or ordered factor) objects then the result will be a factor with levels the union of the level sets of the elements, in the order the levels occur in the level sets of the elements (which means that if all the elements have the same level set, that is the level set of the result). x can be an atomic 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 namin

Examples

Example
R
# NOT RUN {
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

ll <- list(as.name("sinc"), quote( a + b ), 1:10, letters, expression(1+x))
utils::str(ll)
for(x in ll)
  stopifnot(identical(x, unlist(x)))
# }

See Also

c as.list relist.