subListExtract {Biobase} | R Documentation

## Extract the same element from the sublists of a list

### Description

Given a list of lists, this function can be used to extract a named element from each sublist.

### Usage

    subListExtract(L, name, simplify = FALSE, keep.names = TRUE)

### Arguments

`L` | A list of named lists
`name` | The name of the element in the sublists that should be extracted. This should be a length one character vector.
`simplify` | When `TRUE`, the return value will be an atomic vector. If any extracted sublist value has length not equal to one and `simplify=TRUE`, an error will be raised. When `FALSE`, a list is returned containing the extracted elements.
`keep.names` | If `TRUE` (default), the names of `L` will be attached to the returned vector.

### Details

This function is implemented in C and is intended to be faster than calling `lapply` or `sapply`.

### Value

If `simplify=FALSE`, a list will be returned having the same length as `L`, but with each element containing the element named `name` from the corresponding inner list of `L`.
When `simplify=TRUE`, an atomic vector will be returned containing the extracted elements. If any of the inner list elements do not have length one or cannot be put inside an atomic vector, an error will be raised.

### Author(s)

Seth Falcon

### Examples

    list_size = 500000
    innerL = list(foo="foo", bar="bar")
    L = rep(list(innerL), list_size)

    system.time({j0 = sapply(L, function(x) x$foo)})
    system.time({j1 = subListExtract(L, "foo", simplify=TRUE)})
    stopifnot(all.equal(j0, j1))

    LS = L[1:3]
    names(LS) = LETTERS[1:3]
    subListExtract(LS, "bar", simplify=TRUE)
    subListExtract(LS, "bar", simplify=FALSE)
    subListExtract(LS, "bar", simplify=TRUE, keep.names=FALSE)

[Package Biobase version 2.4.1 Index]