Learn R Programming

REDCapR

We’ve been using R with REDCap's API since 2012 and have developed REDCapR. Before encapsulating these functions in a package, we were replicating 50+ lines of code to contact REDCap and robustly transform the returned csv into an R data.frame; it took twice that much to implement batching. All this can be done in one call to redcap_read():

ds <- redcap_read(redcap_uri=uri, token=token)$data

The redcap_read() function also accepts values for subsetting/filtering the records and fields. Here are two examples; the first selects only a portion of the rows, while the second selects only a portion of the columns. Documentation for the additional 20+ functions are found at ouhscbbmc.github.io/REDCapR/reference.

# Return only records with IDs of 1 and 4
desired_records <- c(1, 4)
ds_some_rows <- redcap_read(
  redcap_uri   = uri,
  token        = token,
  records      = desired_records
)$data

# Return only the fields record_id, name_first, and age
desired_fields <- c("record_id", "name_first", "age")
ds_some_fields <- redcap_read(
  redcap_uri  = uri,
  token       = token,
  fields      = desired_fields
)$data

The REDCapR package includes the SSL certificate retrieved by httr::find_cert_bundle(). Your REDCap server's identity is always verified, unless the setting is overridden (alternative certificates can also be provided).

To keep our maintenance efforts manageable, the package implements only the REDCap API functions that have been requested. If there's a feature that would help your projects, please tell us in a new issue in REDCapR's GitHub repository. A troubleshooting document helps diagnose issues with the API.

Installation and Documentation

The release version can be installed from CRAN.

install.packages("REDCapR")

The development version can be installed from GitHub after installing the remotes package.

install.packages("remotes") # Run this line if the 'remotes' package isn't installed already.
remotes::install_github("OuhscBbmc/REDCapR")

The ouhscbbmc.github.io/REDCapR site describes the package functions, and includes documents involving basic operations, advanced operations, token security, and troubleshooting.

Also checkout the other packages that exist for communicating with REDCap, which are listed in the REDCap Tools directory.

Collaborative Development

We encourage input and collaboration. If you're familiar with GitHub and R packages, feel free to submit a pull request. If you'd like to report a bug or make a suggestion, please create a GitHub issue; issues are a usually a good place to ask public questions too. However, feel free to email Will (wibeasley@hotmail.com). Please note that this project is released with a Contributor Code of Conduct; by participating in this project you agree to abide by its terms. We have some starting material described in the ./documentation-for-developers/ directory.

We'd like to thank the following developers for their advice and code contributions: Benjamin Nutter, Rollie Parrish, Scott Burns, John Aponte, Andrew Peters, and Hao Zhu.

Funders

Much of this package has been developed to support the needs of the following projects. We appreciate the support. (So far) the primary developers of REDCapR are the external evaluators for Oklahoma's MIECHV program. See the preliminary CQI reports (many of which use REDCapR) at https://ouhscbbmc.github.io/MReportingPublic/.

  • OUHSC CCAN Independent Evaluation of the State of Oklahoma Competitive Maternal, Infant, and Early Childhood Home Visiting (MIECHV) Project. HRSA/ACF D89MC23154. David Bard, PI, OUHSC; 2011-2015.
  • Independent Evaluation of the State of OK MIECHV Evidence Based Home Visitation Project, NIH-sponsored collaboration with OSDH. David Bard, PI, OUHSC; 2015-2017.
  • OSDH ParentPRO Pilot Evaluation, federally-sponsored collaboration with OSDH. David Bard, PI, OUHSC; 2015-2017.
  • Title IV-E Waiver Project, HRSA/MCHB-sponsored collaboration with OKDHS; David Bard, PI, OUHSC; 2014-2017.
  • Integrative Analysis of Longitudinal Studies of Aging (IALSA), sponsored by NIH 5P01AG043362. Scott Hofer, PI, University of Victoria; Will Beasley, PI of site-award, OUHSC; 2013-2018.
  • Oklahoma Shared Clinical and Translational Resources, sponsored by NIH NIGMS; U54 GM104938. Judith A. James, PI, OUHSC; 2013-2018.
  • Oklahoma Shared Clinical and Translational Resources, sponsored by NIH U54GM104938; 2020-2021.
  • Additional Institutional Support from OUHSC Dept of Pediatrics; 2013-2021.

Thanks, Will Beasley, David Bard, & Thomas Wilson University of Oklahoma Health Sciences Center, Department of Pediatrics, Biomedical & Behavioral Research Core.

Build Status and Package Characteristics

BranchGitHub ActionsCodecov
Main
Dev
Ubuntu LatestTest Coverage
KeyValue
License
CRAN Version
CRAN Rate
Zenodo Archive
Production Doc
Development Doc

Copy Link

Version

Install

install.packages('REDCapR')

Monthly Downloads

1,927

Version

1.2.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

September 9th, 2024

Functions in REDCapR (1.2.0)

redcap_instrument_download

Download REDCap Instruments
redcap_event_instruments

Enumerate the instruments to event mappings
redcap_log_read

Get the logging of a project.
redcap_metadata_read

Export the metadata of a REDCap project
redcap_file_upload_oneshot

Upload a file into to a REDCap project record
redcap_event_read

Export Events
redcap_metadata_coltypes

Suggests a col_type for each field in a REDCap project
redcap_file_download_oneshot

Download a file from a REDCap project record
redcap_metadata_write

Import metadata of a REDCap project
redcap_instruments

Enumerate the instruments (forms)
redcap_read_eav_oneshot

Read/Export records from a REDCap project, returned as eav
redcap_survey_link_export_oneshot

Get survey link from REDCap
redcap_project_info_read

Export project information.
redcap_next_free_record_name

Determine free available record ID
redcap_read

Read records from a REDCap project in subsets, and stacks them together before returning a dataset
redcap_users_export

List authorized users
redcap_project

A Reference Class to make later calls to REDCap more convenient
redcap_read_oneshot_eav

Read/Export records from a REDCap project --still in development
redcap_report

Read/Export records that populate a REDCap report
redcap_read_oneshot

Read/Export records from a REDCap project
sanitize_token

Validate and sanitize the user's REDCap token
redcap_version

Determine version of REDCap instance
retrieve_credential

Read a token and other credentials from a (non-REDCap) database or file
validate

Inspect a dataset to anticipate problems before writing to a REDCap project
replace_nas_with_explicit

Create explicit factor level for missing values
to_api_array

Convert a vector to the array format expected by the REDCap API
redcap_write_oneshot

Write/Import records to a REDCap project
redcap_write

Write/Import records to a REDCap project
redcap_variables

Enumerate the exported variables
REDCapR-package

REDCapR: Interaction Between R and REDCap
kernel_api

REDCapR internal function for calling the REDCap API
create_batch_glossary

Creates a dataset that help batching long-running read and writes
redcap_arm_export

Export Arms
redcap_column_sanitize

Sanitize to adhere to REDCap character encoding requirements
redcap_dag_read

Read data access groups from a REDCap project
constant

Collection of REDCap-specific constants
metadata_utilities

Manipulate and interpret the metadata of a REDCap project
redcap_delete

Delete records in a REDCap project
collapse_vector

Collapse a vector of values into a single string when necessary