unlist                 package:base                 R Documentation

_F_l_a_t_t_e_n _L_i_s_t_s

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

       x: A list or vector.

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

use.names: logical.  Should names be preserved?

_D_e_t_a_i_l_s:

     '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.)

_V_a_l_u_e:

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

_R_e_f_e_r_e_n_c_e_s:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

_S_e_e _A_l_s_o:

     'c', 'as.list'.

_E_x_a_m_p_l_e_s:

     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

