R/utils.R

mergeLists <- function (base_list, overlay_list, recursive = TRUE) {
    if (length(base_list) == 0)
        overlay_list
    else if (length(overlay_list) == 0)
        base_list
    else {
        merged_list <- base_list
        for (name in names(overlay_list)) {
            base <- base_list[[name]]
            overlay <- overlay_list[[name]]
            if (is.list(base) && is.list(overlay) && recursive)
                merged_list[[name]] <- mergeLists(base, overlay)
            else {
                merged_list[[name]] <- NULL
                merged_list <- append(merged_list,
                                      overlay_list[which(names(overlay_list) %in% name)])
            }
        }
        merged_list
    }
}

#' Pipe operator
#'
#' See \code{\link[magrittr]{\%>\%}} for details
#'
#' @name %>%
#' @rdname pipe
#' @export
#' @importFrom magrittr %>%
NULL
durtal/calheatmapR documentation built on May 15, 2019, 6:01 p.m.