Nothing
## ----set_options--------------------------------------------------------------
report_render_start_time <- Sys.time()
library(knitr)
library(magrittr)
suppressPackageStartupMessages(requireNamespace("kableExtra"))
opts_chunk$set(
comment = "#>",
tidy = FALSE
)
## ----project_values-----------------------------------------------------------
library(REDCapR) #Load the package into the current R session.
uri <- "https://bbmc.ouhsc.edu/redcap/api/"
token_simple <- "9A81268476645C4E5F03428B8AC3AA7B"
token_longitudinal <- "0434F0E9CF53ED0587847AB6E51DE762"
## ----retrieve-longitudinal----------------------------------------------------
library(magrittr)
suppressPackageStartupMessages(requireNamespace("dplyr"))
suppressPackageStartupMessages(requireNamespace("tidyr"))
events_to_retain <- c("dose_1_arm_1", "visit_1_arm_1", "dose_2_arm_1", "visit_2_arm_1")
ds_long <- REDCapR::redcap_read_oneshot(redcap_uri = uri, token = token_longitudinal)$data
ds_long %>%
dplyr::select(study_id, redcap_event_name, pmq1, pmq2, pmq3, pmq4)
## ----widen-simple-------------------------------------------------------------
ds_wide <-
ds_long %>%
dplyr::select(study_id, redcap_event_name, pmq1) %>%
dplyr::filter(redcap_event_name %in% events_to_retain) %>%
tidyr::pivot_wider(
id_cols = study_id,
names_from = redcap_event_name,
values_from = pmq1
)
ds_wide
## ----widen-typical------------------------------------------------------------
pattern <- "^(\\w+?)_arm_(\\d)$"
ds_wide <-
ds_long %>%
dplyr::select(study_id, redcap_event_name, pmq1, pmq2, pmq3, pmq4) %>%
dplyr::mutate(
event = sub(pattern, "\\1", redcap_event_name),
event = dplyr::recode(event, "first_dose"="dose_1", "first_visit"="visit_1"),
arm = as.integer(sub(pattern, "\\2", redcap_event_name))
) %>%
dplyr::select(study_id, event, arm, pmq1, pmq2, pmq3, pmq4) %>%
dplyr::filter(!(event %in%
c("enrollment", "final_visit", "deadline_to_return", "deadline_to_opt_ou")
)) %>%
tidyr::pivot_wider(
id_cols = c(study_id, arm),
names_from = event,
values_from = c(pmq1, pmq2, pmq3, pmq4)
)
ds_wide
## ----widen-long-first---------------------------------------------------------
ds_eav <-
ds_long %>%
dplyr::select(study_id, redcap_event_name, pmq1, pmq2, pmq3, pmq4) %>%
dplyr::mutate(
event = sub(pattern, "\\1", redcap_event_name),
event = dplyr::recode(event, "first_dose" = "dose_1", "first_visit" = "visit_1"),
arm = as.integer(sub(pattern, "\\2", redcap_event_name))
) %>%
dplyr::select(study_id, event, arm, pmq1, pmq2, pmq3, pmq4) %>%
tidyr::pivot_longer(
cols = c(pmq1, pmq2, pmq3, pmq4),
names_to = "key",
values_to = "value"
) %>%
# For old versions of tidyr that predate `pivot_wider()`:
# tidyr::gather(key=key, value=value, pmq1, pmq2, pmq3, pmq4) %>%
dplyr::filter(!(event %in% c(
"enrollment", "final_visit", "deadline_to_return", "deadline_to_opt_ou")
)) %>%
dplyr::mutate( # Simulate correcting for mismatched names across arms:
key = paste0(key, "_", event)
) %>%
dplyr::select(-event)
# Show the first 10 rows of the EAV table.
ds_eav %>%
head(10)
# Spread the EAV to wide.
ds_wide_2 <-
ds_eav %>%
tidyr::pivot_wider(
id_cols = c(study_id, arm),
names_from = key,
values_from = value
)
# For old versions of tidyr that predate `pivot_wider()`:
# tidyr::spread(key=key, value=value)
ds_wide_2
## -----------------------------------------------------------------------------
cert_location <- system.file("cacert.pem", package = "openssl")
if (file.exists(cert_location)) {
config_options <- list(cainfo = cert_location)
ds_different_cert_file <- redcap_read_oneshot(
redcap_uri = uri,
token = token_simple,
config_options = config_options
)$data
}
## -----------------------------------------------------------------------------
config_options <- list(sslversion = 3)
ds_ssl_3 <- redcap_read_oneshot(
redcap_uri = uri,
token = token_simple,
config_options = config_options
)$data
config_options <- list(ssl.verifypeer = FALSE)
ds_no_ssl <- redcap_read_oneshot(
redcap_uri = uri,
token = token_simple,
config_options = config_options
)$data
## ----session-info, echo=FALSE-------------------------------------------------
if (requireNamespace("sessioninfo", quietly = TRUE)) {
sessioninfo::session_info()
} else {
sessionInfo()
}
## ----session-duration, echo=FALSE---------------------------------------------
report_render_duration_in_seconds <- round(as.numeric(difftime(Sys.time(), report_render_start_time, units = "secs")))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.