Learn R Programming

⚠️There's a newer version (25.3.1) of this package.Take me there.

REDCapCAST package

REDCap database casting and handling of castellated data when using repeated instruments and longitudinal projects.

This package is a fork of pegeler/REDCapRITS. The REDCapRITS represents great and extensive work to handle castellated REDCap data in different programming languages. This fork is purely minded on R usage and includes a few implementations of the main REDCap_split function.

This package is very much to be seen as an attempt at a R-to-REDCap-to-R foundry for handling both the transition from dataset/variable list to database and the other way, from REDCap database to a tidy dataset. The goal was also to allow for a "minimal data" approach by allowing to filter records, instruments and variables in the export to only download data needed. I think this approach is desirable for handling sensitive, clinical data. Please refer to REDCap-Tools for other great tools for working with REDCap in R.

Use and immprovements

Here is just a short description of the main functions:

  • REDcap_split(): Works largely as the original REDCapRITS::REDCap_split(). It takes a REDCap dataset and metadata (data dictionary) to split the data set into a list of dataframes of instruments.

  • read_redcap_tables(): wraps the use of REDCapR::redcap_read() with REDCap_split() to ease the export of REDCap data. Default output is a list of data frames with one data frame for each REDCap instrument.

  • redcap_wider(): joins and pivots a list of data frames with repeated instruments to a wide format utilizing the tidyr::pivot_wider() from the tidyverse.

  • easy_redcap(): combines secure API key storage with the keyring-package, focused data retrieval and optional widening. This is the recommended approach for easy data access and analysis.

  • ds2dd_detailed(): Converts a data set to a data dictionary for upload to a new REDCap database. Variables (fields) and instruments in a REDCap data base are defined by this data dictionary.

  • shiny_cast(): Shiny application to ease the process of converting a spreadsheet/data set to a REDCap database. The app runs locally and data is transferred securely. You can just create and upload the data dictionary, but you can also transfer the given data in the same process.

Future

The plan with this package is to be bundled with a Handbook on working with REDCap from R. This work is in progress but is limited by the time available. Please feel free to contact me or create and issue with ideas for future additions.

Installation

The package is available on CRAN. Install the latest version:

install.packages("REDCapCAST")

Install the latest version directly from GitHub:

remotes::install_github("agdamsbo/REDCapCAST")

Code of Conduct

Please note that the REDCapCAST project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('REDCapCAST')

Monthly Downloads

532

Version

24.2.1

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Andreas Gammelgaard Damsbo

Last Published

February 28th, 2024

Functions in REDCapCAST (24.2.1)

time_only_correction

Correction based on time_only_filter function
sanitize_split

Sanitize list of data frames
mtcars_redcap

mtcars dataset slightly modified to use for Shiny app upload demonstration
read_input

Flexible file import based on extension
file_extension

Helper to import files correctly
server_factory

Shiny server factory
read_redcap_tables

Download REDCap data
shiny_cast

Launch the included Shiny-app for database casting and upload
read_redcap_instrument

Convenience function to download complete instrument, using token storage in keyring.
redcapcast_data

Data set for demonstration
guess_time_only_filter

Try at determining which are true time only variables
get_id_name

Get the id name
redcap_wider

Redcap Wider
ui_factory

UI factory for shiny app
d2w

Convert single digits to words
focused_metadata

focused_metadata
ds2dd

(DEPRECATED) Data set to data dictionary function
get_api_key

Retrieve project API key if stored, if not, set and retrieve
REDCap_split

Split REDCap repeating instruments table into multiple tables
deploy_shiny

Deploy the Shiny app with rsconnect
clean_redcap_name

clean_redcap_name
easy_redcap

Secure API key storage and data acquisition in one
ds2dd_detailed

Extract data from stata file for data dictionary
mark_complete

Completion marking based on completed upload
match_fields_to_form

Match fields to forms
split_non_repeating_forms

Split a data frame into separate tables for each form
hms2character

Change "hms" to "character" for REDCap upload.
strsplitx

Extended string splitting
redcapcast_meta

REDCap metadata from data base
is_repeated_longitudinal

Test if repeatable or longitudinal