Learn R Programming

pkgmaker (version 0.32.10)

unlist_: Flatten a List Conserving Names

Description

unlist_ is a replacement for base::unlist that does not mangle the names.

Usage

unlist_(x, recursive = TRUE, use.names = TRUE, what.names = "inherited")

Value

A vector.

Arguments

x, recursive, use.names

See ?unlist.

what.names

"inherited" or "full".

Author

Herve Pages

Details

Use this function if you don't like the mangled names returned by the standard unlist function from the base package. Using unlist with annotation data is dangerous and it is highly recommended to use unlist_ instead.

Examples

Run this code
x <- list(A=c(b=-4, 2, b=7), B=3:-1, c(a=1, a=-2), C=list(c(2:-1, d=55), e=99))
unlist(x)
unlist_(x)

# annotation maps (as in AnnotationDbi objects
egids2pbids <- list('10' = 'a', '100' = c('b', 'c'), '1000' = c('d', 'e'))
egids2pbids

unlist(egids2pbids)   # 1001, 1002, 10001 and 10002 are not real
                      # Entrez ids but are the result of unlist()
                      # mangling the names!
unlist_(egids2pbids)  # much cleaner! yes the names are not unique
                      # but at least they are correct...

Run the code above in your browser using DataLab