Learn R Programming

REDCapR (version 0.9.3)

metadata_utilities: Manipulate and interpret the metadata of a REDCap project.

Description

A collection of functions that assists handling REDCap project metadata.

Usage

regex_named_captures(pattern, text, perl = TRUE)
checkbox_choices(select_choices)

Arguments

pattern
The regular expression pattern. Required.
text
The text to apply the regex against. Required.
perl
Indicates if perl-compatible regexps should be used. Optional.
select_choices
The text containing the choices that should be parsed to determine the id and label values. Required.

Value

Currently, a data.frame is returned a row for each match, and a column for each named group witin a match. For the retrieve_checkbox_choices() function, the columns will be.
  1. id: The numeric value assigned to each choice (in the data dictionary).
  2. label: The label assigned to each choice (in the data dictionary).

Details

The regex_named_captures() function is general, and not specific to REDCap; it accepts any arbitrary regular expression. It returns a data.frame with as many columns as named matches.

The checkbox_choices() function is specialized, and accommodates the "select choices" for a single REDCap checkbox group (where multiple boxes can be selected). It returns a data.frame with two columns, one for the numeric id and one fo the text label.

References

See the official documentation for permissible characters in a checkbox label. I'm bluffing here, because I don't know where this is located. If you know, please tell me.

Examples

Run this code
library(REDCapR) #Load the package into the current R session.
#The weird ranges are to avoid the pipe character; PCRE doesn't support character negation.
pattern_boxes <- "(?<=\\A| \\| )(?<id>\\d{1,}), (?<label>[\x20-\x7B\x7D-\x7E]{1,})(?= \\| |\\Z)"

choices_1 <- paste0(
  "1, American Indian/Alaska Native | ",
  "2, Asian | ",
  "3, Native Hawaiian or Other Pacific Islander | ",
  "4, Black or African American | ",
  "5, White | ",
  "6, Unknown / Not Reported")

#This calls the general function, and requires the correct regex pattern.
regex_named_captures(pattern=pattern_boxes, text=choices_1)

#This function is designed specifically for the checkbox values.
checkbox_choices(select_choices=choices_1)

## Not run: 
# uri <- "https://bbmc.ouhsc.edu/redcap/api/"
# token <- "9A81268476645C4E5F03428B8AC3AA7B"
# 
# ds_metadata <- redcap_metadata_read(redcap_uri=uri, token=token)$data
# choices_2 <- ds_metadata[ds_metadata$field_name=="race", "select_choices_or_calculations"]
# 
# regex_named_captures(pattern=pattern_boxes, text=choices_2)
# ## End(Not run)

Run the code above in your browser using DataLab