R/hc_stacked_col.r

Defines functions mp_stacked_col

mp_stacked_col <- function(x, Label = FALSE, columnname) {
    for(i in 1:ncol(x)) {
        if(i == 1) {
            ergframe <- data.frame(matrix(nrow = length(unique(x[[1]])), ncol = 0))
        } else {}
        data <- x %>%
            group_by(x[[i]]) %>%
            summarise (n = n()) %>%
            mutate(freq = round(n / sum(n) * 100, 2))
        data <- data[3]
        ergframe <- merge(ergframe, data, by="row.names", all = TRUE)
        ergframe <- ergframe[-1]
        for(i in 1:ncol(ergframe)) {
            colnames(ergframe)[[i]] <- paste0("freq", i)
        }
    }

    ergframe <- data.frame(t(ergframe))
    row.names(ergframe) <- colnames(x)
    ergframe[is.na(ergframe)] <- 0
    if(Label == TRUE) {
        if(ncol(ergframe) == length(columnname)) {
            colnames(ergframe) <- columnname
        } else {warning("Spaltenzahl und Vektorlaenge nicht identisch")}
    } else {}

    return(ergframe)

}
MarkusLang1987/MPCodes documentation built on May 17, 2019, 6:21 p.m.