dmtools

CRAN status Build Status codecov

Installation

install.packages("dmtools")

# dev-version
devtools::install_github("chachabooms/dmtools")

library(dmtools)

Overview

For checking the dataset from EDC in clinical trials. Notice, your dataset should have a postfix( _v1 ) or a prefix( v1_ ) in the names of variables. Column names should be unique.

Usage

For example, you want to check laboratory values, you need to create the excel table like in the example.

lab reference ranges
AGELOW AGEHIGH SEX LBTEST LBORRES LBNDIND LBORNRLO LBORNRHI
18 45 f|m gluc gluc gluc_res 3.9 5.9
18 45 m ast ast ast_res 0 42
18 45 f ast ast ast_res 0 39
dataset
id age sex gluc_v1 gluc_res_v1 ast_v2 ast_res_v2
01 19 f 5.5 norm 30 norm
02 20 m 4.1 NA 48 norm
03 22 m 9.7 norm 31 norm
# "norm" and "no" it is an example, necessary variable for the estimate, get from the dataset
refs <- system.file("labs_refer.xlsx", package = "dmtools")
obj_lab <- lab(refs, id, age, sex, "norm", "no")
obj_lab <- obj_lab %>% check(df)

# ok - analysis, which has a correct estimate of the result
obj_lab %>% choose_test("ok")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 01  19   f   gluc    gluc   _v1      3.9      5.9     5.5    norm
#> 2 01  19   f    ast     ast   _v2      0.0     39.0      30    norm
#> 3 03  22   m    ast     ast   _v2      0.0     42.0      31    norm
#>   RES_TYPE_NUM IND_EXPECTED
#> 1          5.5         norm
#> 2         30.0         norm
#> 3         31.0         norm

# mis - analysis, which has an incorrect estimate of the result
obj_lab %>% choose_test("mis")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 02  20   m    ast     ast   _v2      0.0     42.0      48    norm
#> 2 03  22   m   gluc    gluc   _v1      3.9      5.9     9.7    norm
#>   RES_TYPE_NUM IND_EXPECTED
#> 1         48.0           no
#> 2          9.7           no

# skip - analysis, which has an empty value of the estimate
obj_lab %>% choose_test("skip")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 02  20   m   gluc    gluc   _v1      3.9      5.9     4.1    <NA>
#>   RES_TYPE_NUM IND_EXPECTED
#> 1          4.1         <NA>
strange_dataset
id age sex gluc_v1 gluc_res_v1 ast_v2 ast_res_v2
01 19 f 5,5 norm < 5 norm
02 20 m 4,1 NA 48 norm
03 22 m 9,7 norm 31 norm
# dmtools can work with the dataset as strange_df
obj_lab <- obj_lab %>% check(strange_df)

# dmtools can understand the value with a comma like 6,6 
obj_lab %>% choose_test("ok")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 01  19   f   gluc    gluc   _v1      3.9      5.9     5,5    norm
#> 2 03  22   m    ast     ast   _v2      0.0     42.0      31    norm
#>   RES_TYPE_NUM IND_EXPECTED
#> 1          5.5         norm
#> 2         31.0         norm

# Notice, if dmtools can't understand the value of lab_vals e.g. < 5, it puts Inf in the vals_to_dbl
obj_lab %>% choose_test("mis")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 01  19   f    ast     ast   _v2      0.0     39.0     < 5    norm
#> 2 02  20   m    ast     ast   _v2      0.0     42.0      48    norm
#> 3 03  22   m   gluc    gluc   _v1      3.9      5.9     9,7    norm
#>   RES_TYPE_NUM IND_EXPECTED
#> 1          Inf           no
#> 2         48.0           no
#> 3          9.7           no

obj_lab %>% choose_test("skip")
#>   id age sex LBTEST LBTESCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 02  20   m   gluc    gluc   _v1      3.9      5.9     4,1    <NA>
#>   RES_TYPE_NUM IND_EXPECTED
#> 1          4.1         <NA>