The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
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.
For laboratory check, you need to create the excel table like in the example.
|
*column names without prefix or postfix
AGELOW | AGEHIGH | SEX | LBTEST | LBORRES | LBNRIND | LBORNRLO | LBORNRHI |
---|---|---|---|---|---|---|---|
18 | 45 | f|m | Glucose | GLUC | GLUC_IND | 3.9 | 5.9 |
18 | 45 | m | Aspartate transaminase | AST | AST_IND | 0 | 42 |
18 | 45 | f | Aspartate transaminase | AST | AST_IND | 0 | 39 |
ID | AGE | SEX | V1_GLUC | V1_GLUC_IND | V2_AST | V2_AST_IND |
---|---|---|---|---|---|---|
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
# parameter is_post has value FALSE because a dataset has a prefix( V1_ ) in the names of variables
refs <- system.file("labs_refer.xlsx", package = "dmtools")
obj_lab <- lab(refs, ID, AGE, SEX, "norm", "no", is_post = FALSE)
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 LBTESTCD VISIT LBORNRLO LBORNRHI LBORRES
#> 1 01 19 f Glucose GLUC V1_ 3.9 5.9 5.5
#> 2 01 19 f Aspartate transaminase AST V2_ 0.0 39.0 30
#> 3 03 22 m Aspartate transaminase AST V2_ 0.0 42.0 31
#> LBNRIND RES_TYPE_NUM IND_EXPECTED
#> 1 norm 5.5 norm
#> 2 norm 30.0 norm
#> 3 norm 31.0 norm
# mis - analysis, which has an incorrect estimate of the result
obj_lab %>% choose_test("mis")
#> ID AGE SEX LBTEST LBTESTCD VISIT LBORNRLO LBORNRHI LBORRES
#> 1 02 20 m Aspartate transaminase AST V2_ 0.0 42.0 48
#> 2 03 22 m Glucose GLUC V1_ 3.9 5.9 9.7
#> LBNRIND RES_TYPE_NUM IND_EXPECTED
#> 1 norm 48.0 no
#> 2 norm 9.7 no
# skip - analysis, which has an empty value of the estimate
obj_lab %>% choose_test("skip")
#> ID AGE SEX LBTEST LBTESTCD VISIT LBORNRLO LBORNRHI LBORRES LBNRIND
#> 1 02 20 m Glucose GLUC V1_ 3.9 5.9 4.1 <NA>
#> RES_TYPE_NUM IND_EXPECTED
#> 1 4.1 norm
# all analyzes
obj_lab %>% get_result()
#> ID AGE SEX LBTEST LBTESTCD VISIT LBORNRLO LBORNRHI LBORRES
#> 1 01 19 f Glucose GLUC V1_ 3.9 5.9 5.5
#> 2 01 19 f Aspartate transaminase AST V2_ 0.0 39.0 30
#> 3 02 20 m Glucose GLUC V1_ 3.9 5.9 4.1
#> 4 02 20 m Aspartate transaminase AST V2_ 0.0 42.0 48
#> 5 03 22 m Glucose GLUC V1_ 3.9 5.9 9.7
#> 6 03 22 m Aspartate transaminase AST V2_ 0.0 42.0 31
#> LBNRIND RES_TYPE_NUM IND_EXPECTED IS_RIGHT
#> 1 norm 5.5 norm TRUE
#> 2 norm 30.0 norm TRUE
#> 3 <NA> 4.1 norm NA
#> 4 norm 48.0 no FALSE
#> 5 norm 9.7 no FALSE
#> 6 norm 31.0 norm TRUE
For dates check, you need to create the excel table like in the example.
contains(num_visit)
VISITNUM | VISIT | MINUS | PLUS | VISITDY | STARTDAT | STARTVISIT | IS_EQUAL | EQUALDAT |
---|---|---|---|---|---|---|---|---|
E1 | screening | 0 | 3 | 0 | screen_date_E1 | date of screening | F | NA |
E2 | rand | 0 | 0 | 0 | rand_date_E2 | date of randomization | T | rand_date_E2 |
E3 | visit 2 | 1 | 1 | 5 | rand_date_E2 | date of randomization | T | ph_date_E3 |
id | screen_date_E1 | rand_date_E2 | ph_date_E3 | bio_date_E3 |
---|---|---|---|---|
01 | 1991-03-13 | 1991-03-15 | 1991-03-21 | 1991-03-23 |
02 | 1991-03-07 | 1991-03-11 | 1991-03-16 | 1991-03-16 |
03 | 1991-03-08 | 1991-03-10 | 1991-03-16 | 1991-03-16 |
# use parameter str_date for search columns with dates, default:"DAT"
dates <- system.file("dates.xlsx", package = "dmtools")
obj_date <- date(dates, id, dplyr::contains, dplyr::matches)
obj_date <- obj_date %>% check(df)
# out - dates, which are out of the protocol's timeline
obj_date %>% choose_test("out")
#> id STARTVISIT STARTDAT VISIT TERM VISDAT
#> 1 01 date of randomization 1991-03-15 visit 2 bio_date_E3 1991-03-23
#> PLANDAT DAYS_OUT
#> 1 1991-03-19 UTC--1991-03-21 UTC 2
# uneq - dates, which are unequal
obj_date %>% choose_test("uneq")
#> id VISIT TERM VISDAT EQUALDAT IS_TIMELINE
#> 1 01 visit 2 bio_date_E3 1991-03-23 1991-03-21 FALSE
# ok - correct dates
obj_date %>% choose_test("ok")
#> id STARTVISIT STARTDAT VISIT TERM VISDAT
#> 1 01 date of screening 1991-03-13 screening screen_date_E1 1991-03-13
#> 2 01 date of randomization 1991-03-15 rand rand_date_E2 1991-03-15
#> 3 01 date of randomization 1991-03-15 visit 2 ph_date_E3 1991-03-21
#> 4 02 date of screening 1991-03-07 screening screen_date_E1 1991-03-07
#> 5 02 date of randomization 1991-03-11 rand rand_date_E2 1991-03-11
#> 6 02 date of randomization 1991-03-11 visit 2 ph_date_E3 1991-03-16
#> 7 02 date of randomization 1991-03-11 visit 2 bio_date_E3 1991-03-16
#> 8 03 date of screening 1991-03-08 screening screen_date_E1 1991-03-08
#> 9 03 date of randomization 1991-03-10 rand rand_date_E2 1991-03-10
#> 10 03 date of randomization 1991-03-10 visit 2 ph_date_E3 1991-03-16
#> 11 03 date of randomization 1991-03-10 visit 2 bio_date_E3 1991-03-16
#> PLANDAT EQUALDAT
#> 1 1991-03-13 UTC--1991-03-16 UTC 1991-03-13
#> 2 1991-03-15 UTC--1991-03-15 UTC 1991-03-15
#> 3 1991-03-19 UTC--1991-03-21 UTC 1991-03-21
#> 4 1991-03-07 UTC--1991-03-10 UTC 1991-03-07
#> 5 1991-03-11 UTC--1991-03-11 UTC 1991-03-11
#> 6 1991-03-15 UTC--1991-03-17 UTC 1991-03-16
#> 7 1991-03-15 UTC--1991-03-17 UTC 1991-03-16
#> 8 1991-03-08 UTC--1991-03-11 UTC 1991-03-08
#> 9 1991-03-10 UTC--1991-03-10 UTC 1991-03-10
#> 10 1991-03-14 UTC--1991-03-16 UTC 1991-03-16
#> 11 1991-03-14 UTC--1991-03-16 UTC 1991-03-16
# all dates
obj_date %>% get_result()
#> id STARTVISIT STARTDAT VISIT TERM VISDAT
#> 1 01 date of screening 1991-03-13 screening screen_date_E1 1991-03-13
#> 2 01 date of randomization 1991-03-15 rand rand_date_E2 1991-03-15
#> 3 01 date of randomization 1991-03-15 visit 2 ph_date_E3 1991-03-21
#> 4 01 date of randomization 1991-03-15 visit 2 bio_date_E3 1991-03-23
#> 5 02 date of screening 1991-03-07 screening screen_date_E1 1991-03-07
#> 6 02 date of randomization 1991-03-11 rand rand_date_E2 1991-03-11
#> 7 02 date of randomization 1991-03-11 visit 2 ph_date_E3 1991-03-16
#> 8 02 date of randomization 1991-03-11 visit 2 bio_date_E3 1991-03-16
#> 9 03 date of screening 1991-03-08 screening screen_date_E1 1991-03-08
#> 10 03 date of randomization 1991-03-10 rand rand_date_E2 1991-03-10
#> 11 03 date of randomization 1991-03-10 visit 2 ph_date_E3 1991-03-16
#> 12 03 date of randomization 1991-03-10 visit 2 bio_date_E3 1991-03-16
#> PLANDAT EQUALDAT IS_TIMELINE IS_EQUAL DAYS_OUT
#> 1 1991-03-13 UTC--1991-03-16 UTC 1991-03-13 TRUE TRUE 0
#> 2 1991-03-15 UTC--1991-03-15 UTC 1991-03-15 TRUE TRUE 0
#> 3 1991-03-19 UTC--1991-03-21 UTC 1991-03-21 TRUE TRUE 0
#> 4 1991-03-19 UTC--1991-03-21 UTC 1991-03-21 FALSE FALSE 2
#> 5 1991-03-07 UTC--1991-03-10 UTC 1991-03-07 TRUE TRUE 0
#> 6 1991-03-11 UTC--1991-03-11 UTC 1991-03-11 TRUE TRUE 0
#> 7 1991-03-15 UTC--1991-03-17 UTC 1991-03-16 TRUE TRUE 0
#> 8 1991-03-15 UTC--1991-03-17 UTC 1991-03-16 TRUE TRUE 0
#> 9 1991-03-08 UTC--1991-03-11 UTC 1991-03-08 TRUE TRUE 0
#> 10 1991-03-10 UTC--1991-03-10 UTC 1991-03-10 TRUE TRUE 0
#> 11 1991-03-14 UTC--1991-03-16 UTC 1991-03-16 TRUE TRUE 0
#> 12 1991-03-14 UTC--1991-03-16 UTC 1991-03-16 TRUE TRUE 0
dplyr::contains
- A function, which select necessary visit or event e.g. dplyr::start_with, dplyr::contains. It works like df %>% select(contains("E1"))
. You also can use dplyr::start_with
, works like df %>% select(start_with("V1"))
dplyr::matches
- A function, which select dates from necessary visit e.g. dplyr::matches, dplyr::contains. It works like visit_one %>% select(contains("DAT"))
, default: dplyr::contains()
Function to rename the dataset, using crfs.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.