R/nicer.result.R

#' @author Gregoire Versmee, Laura Versmee, Mikael Dusenne

nicer.result <- function(result, allpaths, verbose = FALSE)  {

  if (verbose)  message("  combining the categorical variables")

  groups <- dirname(colnames(result)[-1])
  groups2 <- unique(groups)
  names(groups2) <- names(allpaths)[!duplicated(groups)]

  final <- result[1]
  cnames <- c("Patient_id")

  for (i in 1:length(groups2))  {
    subdf <- result[-1][groups == groups2[i]]
    if (length(unique(subdf[,1])) <= 2  & any(is.na(unique(subdf[,1]))))  {
      subdf[is.na(subdf)] <- ""
      final <- cbind(final, as.factor(apply(subdf, 1, paste0, collapse = "")))
      if (!is.null(names(groups2)))  {
          if (names(groups2[i]) == "")  cnames <- c(cnames, basename(dirname(colnames(subdf)[1])))  else  cnames <- c(cnames, names(groups2[i]))
        } else  cnames <- c(cnames, basename(dirname(colnames(subdf)[1])))

    } else {
      final <- cbind(final, subdf)
      if (!is.null(names(groups2)))  {
        if (names(groups2[i]) == "")  cnames <- c(cnames, basename(colnames(subdf)))  else cnames <- c(cnames, names(groups2[i]))
        }  else  cnames <- c(cnames, basename(colnames(subdf)))
    }
  }

  colnames(final) <- cnames

  return(final)
}
gversmee/picsuRe documentation built on May 24, 2019, 9:50 a.m.