Skip to contents

Merge two variables in a data frame such as returned by dbGetFieldsIntoDf into a new variable, and optionally also map its values to new levels.

Usage

dfMergeTwoVariablesRelevel(df = NULL, colnames = "", levelslist = NULL, ...)

Arguments

df

A data.frame in which there are two variables (columns) to be merged into one.

colnames

A vector of length two with names of the two columns that hold the variables to be merged. See colnames for how to obtain the names of columns of a data frame.

levelslist

A list with one slice each for a new value to be used for a vector of old values (optional).

...

for deprecated varnames parameter (will be removed)

Value

A vector of strings

Examples


vars2merge <- c("overall_status", "x5_trial_status")

dbc <- nodbi::src_sqlite(
   dbname = system.file("extdata", "demo.sqlite", package = "ctrdata"),
   collection = "my_trials")

df <- dbGetFieldsIntoDf(
  fields = vars2merge,
  con = dbc)
#> overall_status... 
#>     
#> 
#> x5_trial_status... 
#>     

statusvalues <- list(
  "ongoing" = c("Recruiting", "Active", "Ongoing",
                "Active, not recruiting", "Enrolling by invitation"),
  "completed" = c("Completed", "Prematurely Ended", "Terminated"),
  "other" = c("Withdrawn", "Suspended",
              "No longer available", "Not yet recruiting"))

dfMergeTwoVariablesRelevel(
  df = df,
  colnames = vars2merge,
  levelslist = statusvalues)
#> Unique values returned (first three): completed, ongoing, Temporarily Halted
#>  [1] "completed"                "completed"               
#>  [3] "completed"                "completed"               
#>  [5] "completed"                "completed"               
#>  [7] "completed"                "completed"               
#>  [9] "completed"                "completed"               
#> [11] "completed"                "completed"               
#> [13] "completed"                "completed"               
#> [15] "completed"                "completed"               
#> [17] "completed"                "ongoing"                 
#> [19] "Temporarily Halted"       "ongoing"                 
#> [21] "GB - no longer in EU/EEA" "Not Authorised"          
#> [23] "ongoing"                  "completed"               
#> [25] "completed"                "completed"               
#> [27] "completed"                "completed"               
#> [29] "completed"                "Unknown status"          
#> [31] "completed"                "completed"               
#> [33] "Unknown status"           "Unknown status"          
#> [35] "completed"                "completed"               
#> [37] "completed"                "other"                   
#> [39] "completed"                "completed"               
#> [41] "completed"                "completed"               
#> [43] "other"                    "completed"               
#> [45] "completed"                "Unknown status"          
#> [47] "completed"                "completed"               
#> [49] "completed"                "completed"               
#> [51] "completed"                "ongoing"                 
#> [53] "completed"                "completed"               
#> [55] "Unknown status"           "Unknown status"          
#> [57] "Unknown status"           "completed"               
#> [59] "completed"                "completed"               
#> [61] "Unknown status"