Split REDCap repeating instruments table into multiple tables
Split REDCap repeating instruments table into multiple tables
This will take output from a REDCap export and split it into a base table and child tables for each repeating instrument. Metadata is used to determine which fields should be included in each resultant table.
REDCap_split( records, metadata, primary_table_name ="", forms = c("repeating","all"))
Arguments
records: Exported project records. May be a data.frame, response, or character vector containing JSON from an API call.
metadata: Project metadata (the data dictionary). May be a data.frame, response, or character vector containing JSON from an API call.
primary_table_name: Name given to the list element for the primary output table. Ignored if forms = 'all'.
forms: Indicate whether to create separate tables for repeating instruments only or for all forms.
Returns
A list of "data.frame"s. The number of tables will differ depending on the forms option selected.
'repeating': one base table and one or more tables for each repeating instrument.
'all': a data.frame for each instrument, regardless of whether it is a repeating instrument or not.
Examples
## Not run:# Using an API call -------------------------------------------------------library(RCurl)# Get the recordsrecords <- postForm( uri = api_url,# Supply your site-specific URI token = api_token,# Supply your own API token content ="record", format ="json", returnFormat ="json")# Get the metadatametadata <- postForm( uri = api_url,# Supply your site-specific URI token = api_token,# Supply your own API token content ="metadata", format ="json")# Convert exported JSON strings into a list of data.framesREDCapCAST::REDCap_split(records, metadata)# Using a raw data export -------------------------------------------------# Get the recordsrecords <- read.csv("/path/to/data/ExampleProject_DATA_2018-06-03_1700.csv")# Get the metadatametadata <- read.csv("/path/to/data/ExampleProject_DataDictionary_2018-06-03.csv")# Split the tablesREDCapCAST::REDCap_split(records, metadata)# In conjunction with the R export script ---------------------------------# You must set the working directory first since the REDCap data export# script contains relative file references.old <- getwd()setwd("/path/to/data/")# Run the data export script supplied by REDCap.# This will create a data.frame of your records called 'data'source("ExampleProject_R_2018-06-03_1700.r")# Get the metadatanmetadata <- read.csv("ExampleProject_DataDictionary_2018-06-03.csv")# Split the tablesREDCapCAST::REDCap_split(data, metadata)setwd(old)## End(Not run)