R/flatten_list_of_lists.R

Defines functions flatten_list_of_lists

Documented in flatten_list_of_lists

#' Flatten a list of lists to a list of atomic vectors
#'
#' This function takes a hierarchical structure of lists and
#' extracts all atomic vectors, returning one flat list of all
#' those vectors.
#'
#' @param x The list of lists.
#'
#' @return A list of atomic vectors.
#' @export
#'
#' @examples ### First create a list of lists
#' listOfLists <-
#'   list(list(list(1:3, 8:5), 7:7), list(1:4, 8:2));
#' yum::flatten_list_of_lists(listOfLists);
flatten_list_of_lists <- function(x) {
  if (is.atomic(x)) {
    return(x);
  } else if (all(unlist(lapply(x, is.atomic)))) {
    return(x);
  } else {
    return(do.call(c,
                   lapply(x,
                          flatten_list_of_lists)));
  }
}

Try the yum package in your browser

Any scripts or data that you put into this service are public.

yum documentation built on July 17, 2021, 1:07 a.m.