R/unique_comb.R

Defines functions unique_comb

Documented in unique_comb

#' Function for creating object to merge with original dataset to find missing columns
#'
#' This function allows you to create subset of interventaion
#' @param dtfr Dataframe containing columns from which unique combinations shall be made
#' @keywords cats
#' @export
#' @examples
#' unique_comb()
unique_comb <- function(dtfr){

    # Makre sure that tidyverse package is loaded
    requireNamespace(tidyverse)


    # Make sure that data is a tibble
    dtfr <- as_data_frame(dtfr)


    # we need storiage list and a simple column count of dtfr
    L <- list()
    n <- ncol(dtfr)


    # Create separate lists with unique entries of each col in dtfr
    for(i in 1:n){
        L[[i]] <- unique(dtfr[[i]])
    }

    # Create data frame with all combinatiosn Of the variables
    df <- expand.grid(L[seq(1, n)])
    colnames(df) <- colnames(dtfr)


    # Make into a tibble
    df <- as_data_frame(df)

    # Fix up classes of columns
    for (i in 1:n){
        if (class(dtfr[[i]]) == "numeric"){
            df[[i]] <-  as.numeric(as.character(df[[i]]))
        }
        else if (class(dtfr[[i]]) == "character" ) {
            df[[i]] <- as.character(df[[i]])

        }
    }

    # Return the new full-value tibble
    return(df)
}
EriksenJ/FunctionsJE documentation built on May 7, 2019, 7:43 a.m.