R/merge-multi-files.R

Defines functions merge_multi_files

Documented in merge_multi_files

#' Merge two or more data frame in a list.
#'
#' @param datalist A list including more than two data frame .
#' @param bylist A merged ID list.
#' @return The merged dataframe accordidng to \code{datalist} and \code{bylist}.
#' @examples
#' data1 <- data.frame(v1=c("a","b","c"),v2 = c("m","g","f"))
#' data2 <- data.frame(v1=c("a","b","c"),v3 = c("d","g","f"))
#' data3 <- data.frame(v3=c("d","g","f"),v4 = c("m",NA,NA))
#' datalist <- list(d1=data1,d2=data2,d3=data3)
#' bylist <- list(id1=c("v1"),id2=c("v3"))
#' data1
#' data2
#' data3
#' merged_data <- merge_multi_files(datalist,bylist)
#' merged_data
#'

merge_multi_files <- function(
    datalist,
    bylist
)
{
    if(length(datalist)<=1)
    {
        stop("There must be at least two data to be merge.\nPlease use help(merge_multi_files) to see example")
    }
    if (length(datalist) != length(bylist)+1)
    {
        stop("datalist length must equals bylist add 1.\nPlease use help(merge_multi_files) to see example")
    }

    data_len <- length(datalist)
    tmp_data <- merge(datalist[[1]],datalist[[2]],by=bylist[[1]]);


    for (i in 3: data_len)
    {
        tmp_data <- merge(tmp_data,datalist[[i]],by=bylist[[i-1]])
    }

    return(tmp_data)

}
ShouyeLiu/metaboliteUtility documentation built on May 6, 2019, 9:07 a.m.