Skip to content
Prev 244193 / 398506 Next

fast subsetting of lists in lists

On Tue, Dec 7, 2010 at 12:12 PM, Alexander Senger
<senger at physik.hu-berlin.de> wrote:
Too bad it wasn't faster but note that unlist does not rely on lapply.
  Here is the complete source of unlist and from it we see the key
portion is done internally, i.e. in C:
function (x, recursive = TRUE, use.names = TRUE)
{
    if (.Internal(islistfactor(x, recursive))) {
        lv <- unique(.Internal(unlist(lapply(x, levels), recursive,
            FALSE)))
        nm <- if (use.names)
            names(.Internal(unlist(x, recursive, use.names)))
        res <- .Internal(unlist(lapply(x, as.character), recursive,
            FALSE))
        res <- match(res, lv)
        structure(res, levels = lv, names = nm, class = "factor")
    }
    else .Internal(unlist(x, recursive, use.names))
}
<environment: namespace:base>