Turns the subject ID columns of all datasets into a factor containing levels for all the subjects of the database. Avoid problems when joining tables, and some checks can be performed on the levels.
Usage
harmonize_subjid(datalist, preprocess = NULL, col_subjid = get_subjid_cols())
Arguments
- datalist
a list of dataframes
- preprocess
an optional function to modify the subject ID column, for example
as.numeric()
. See examples.- col_subjid
the names of the columns holding the subject ID (as character)
Examples
db = edc_example()
#> Warning: Option "edc_lookup" has been overwritten.
db$db0 = head(db$db0, 10)
db$db0$SUBJID %>% head()
#> [1] 1 2 3 4 5 6
db = harmonize_subjid(db)
db$db0$SUBJID %>% head()
#> [1] 1 2 3 4 5 6
#> 50 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 50
db = harmonize_subjid(db, preprocess=function(x) paste0("#", x))
db$db0$SUBJID %>% head()
#> [1] #1 #2 #3 #4 #5 #6
#> 50 Levels: #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 ... #50