Changelog
Source:NEWS.md
EDCimport 0.5.0
New features
New function
lastnews_table()
to find the last date an information has been entered for each patient.-
New functions to describe adverse events:
-
ae_table_grade_max()
,ae_table_grade_n()
, andae_table_soc()
to generate standardized tables. They all can be turned to flextables usingas_flextable()
. -
ae_plot_grade_max()
,ae_plot_grade_n()
, andae_plot_soc()
to generate standardized plots.
-
-
New functions
edc_data_warn()
andassert_no_rows()
to help performing data sanity checks.ae %>% filter(grade>5) %>% assert_no_rows() ae %>% filter(is.na(grade)) %>% edc_data_warn("Grade is missing", issue_n=13) #> Warning: Issue #13: Grade is missing (Patient 21, 28, 39, 95, 97, 120, 173, and 182)
New function
fct_yesno()
, to easily format Yes/No columns.New function
save_plotly()
, to save aplotly
to an HTML file.New experimental functions
table_format()
,get_common_cols()
andget_meta_cols()
that might become useful to find keys to pivot or summarise data.
Bug fixes & Improvements
-
read_trialmaster(split_mixed="TRUE")
will work as intended. -
extend_lookup()
will not fail anymore when the database has a faulty table. -
assert_no_duplicate()
has now aby
argument to check for duplicate in groups, for example by visit. -
find_keyword()
is more robust and inform on the proportion of missing if possible. -
read_trialmaster()
will output a readable error when no password is entered although one is needed. -
check_subjid()
can either take a vector or a dataframe as input, and the message is more informative. -
get_lookup()
will now retreive the lookup table. Usebuild_lookup()
to build is from a table list. -
get_subjid_cols()
andget_crfname_cols()
replace the now deprecatedget_key_cols()
.
EDCimport 0.4.0
CRAN release: 2023-12-11
New features
- New function
check_subjid()
to check if a vector is not missing some patients (#8).
options(edc_subjid_ref=enrolres$subjid)
check_subjid(treatment$subjid)
check_subjid(ae$subjid)
- New function
assert_no_duplicate()
to abort if a table has duplicates in a subject ID column(#9).
tibble(subjid=c(1:10, 1)) %>% assert_no_duplicate() %>% nrow()
#Error in `assert_no_duplicate()`:
#! Duplicate on column "subjid" for value 1.
- New function
manual_correction()
to safely hard-code a correction while waiting for the TrialMaster database to be updated. - New function
edc_options()
to manageEDCimport
global parameterization. - New argument
edc_swimmerplot(id_lim)
to subset the swimmer plot to some patients only. - New option
read_trialmaster(use_cache="write")
to read from the zip again but still update the cache. - You can now use the syntax
read_trialmaster(split_mixed=c("col1", "col2"))
to split only the datasets you need to (#10).
Bug fixes & Improvements
- Reading with
read_trialmaster()
from cache will output an error if parameters (split_mixed
,clean_names_fun
) are different (#4). -
split_mixed_datasets()
is now fully case-insensitive. - Non-UTF8 characters in labels are now identified and corrected during reading (#5).
Minor breaking changes
-
read_trialmaster(use_cache="write")
is now the default. Reading from cache is not stable yet, so you should opt-in rather than opt-out. -
read_trialmaster(extend_lookup=TRUE)
is now the default. - Options
edc_id
,edc_crfname
, andedc_verbose
have been respectively renamededc_cols_id
,edc_cols_crfname
, andedc_read_verbose
for more clarity.
EDCimport 0.3.0 2023/05/19
CRAN release: 2023-05-19
New features
New function
edc_swimmerplot()
to show a swimmer plot of all dates in the database and easily find outliers.-
New features in
read_trialmaster()
:-
clean_names_fun=some_fun
will clean all names of all tables. For instance,clean_names_fun=janitor::clean_names()
will turn default SAS uppercase column names into valid R snake-case column names. -
split_mixed=TRUE
will split tables that contain both long and short data regarding patient ID into one long table and one short table. See?split_mixed_datasets()
for details. -
extend_lookup=TRUE
will improve the lookup table with additional information. See?extend_lookup()
for details. -
key_columns=get_key_cols()
is where you can change the default column names for patient ID and CRF name (used in other new features).
-
Standalone functions
extend_lookup()
andsplit_mixed_datasets()
.New helper
unify()
, which turns a vector of duplicate values into a vector of length 1.
Bug fixes
Reading errors are now handled by
read_trialmaster()
instead of failing. If one XPT file is corrupted, the resulting object will contain the error message instead of the dataset.find_keyword()
is now robust to non-UTF8 characters in labels.Option
edc_lookup
is now set even when reading from cache.SAS formats containing a
=
now work as intended.
EDCimport 0.2.1 2022/11/01
CRAN release: 2022-12-02
Import your data from TrialMaster using
tm = read_trialmaster("path/to/archive.zip")
.Search for a keyword in any column name or label using
find_keyword("date", data=tm$.lookup)
. You can also generate a lookup table for an arbitrary list of dataframe usingbuild_lookup(my_data)
.Load the datasets to the global environment using
load_list(tm)
to avoid typingtm$
everywhere.Browse available global options using
?EDCimport_options
.