mirror of
https://github.com/agdamsbo/REDCapCAST.git
synced 2024-11-22 13:30:23 +01:00
includes read_redcap_table
This commit is contained in:
parent
be3969d007
commit
edafc35806
@ -1,11 +1,10 @@
|
||||
Package: REDCapRITS
|
||||
Title: REDCap Repeating Instrument Table Splitter Fork
|
||||
Version: 0.2.2.1
|
||||
Version: 0.2.3
|
||||
Authors@R: c(
|
||||
person("Paul", "Egeler", email = "paul.egeler@spectrumhealth.org", role = c("aut")),
|
||||
person("Andreas Gammelgaard", "Damsbo", email = "agdamsbo@clin.au.dk", role = c("cre", "ctb","cph"),
|
||||
comment = c(ORCID = "0000-0002-7559-1154")))
|
||||
Copyright: Spectrum Health, Grand Rapids, MI
|
||||
Description: This is a fork of REDCapRITS by Paul Egeler and Spectrum Health. See
|
||||
[https://github.com/SpectrumHealthResearch/REDCapRITS](https://github.com/SpectrumHealthResearch/REDCapRITS).
|
||||
Split REDCap repeating instruments output into multiple tables.
|
||||
@ -32,7 +31,10 @@ LazyData: true
|
||||
RoxygenNote: 7.2.3
|
||||
URL: https://github.com/agdamsbo/REDCapRITS
|
||||
BugReports: https://github.com/agdamsbo/REDCapRITS/issues
|
||||
Imports:
|
||||
REDCapR
|
||||
Collate:
|
||||
'utils.r'
|
||||
'process_user_input.r'
|
||||
'REDCap_split.r'
|
||||
'read_redcap_tables.R'
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Generated by roxygen2: do not edit by hand
|
||||
|
||||
export(REDCap_split)
|
||||
export(read_redcap_tables)
|
||||
importFrom(REDCapR,redcap_metadata_read)
|
||||
importFrom(REDCapR,redcap_read)
|
||||
|
71
R/read_redcap_tables.R
Normal file
71
R/read_redcap_tables.R
Normal file
@ -0,0 +1,71 @@
|
||||
#' Download REDCap data
|
||||
#'
|
||||
#' Wrapper function for using REDCapR::redcap_read and REDCapRITS::REDCap_split
|
||||
#' including some clean-up. Works with longitudinal projects with repeating
|
||||
#' instruments.
|
||||
#' @param uri REDCap database uri
|
||||
#' @param token API token
|
||||
#' @param records records to download
|
||||
#' @param fields fields to download
|
||||
#' @param events events to download
|
||||
#' @param forms forms to download
|
||||
#' @param raw_or_label raw or label tags
|
||||
#' @param generics vector of auto-generated generic variable names to
|
||||
#' ignore when discarding empty rows
|
||||
#' @param ... ekstra parameters for REDCapR::redcap_read_oneshot
|
||||
#'
|
||||
#' @return list of instruments
|
||||
#' @importFrom REDCapR redcap_metadata_read redcap_read
|
||||
#' @export
|
||||
#'
|
||||
#' @examples
|
||||
#' # Examples will be provided later
|
||||
read_redcap_tables <- function(uri,
|
||||
token,
|
||||
records = NULL,
|
||||
fields = NULL,
|
||||
events = NULL,
|
||||
forms = NULL,
|
||||
raw_or_label = "label",
|
||||
generics = c(
|
||||
"record_id",
|
||||
"redcap_event_name",
|
||||
"redcap_repeat_instrument",
|
||||
"redcap_repeat_instance"
|
||||
),
|
||||
...) {
|
||||
# Notes to self: Based on the metadata, this functionality could be
|
||||
# introduced without using the REDCapRITS package.. To be tried..
|
||||
#
|
||||
# This does not handle repeated instruments!! This should be implemented.
|
||||
|
||||
d <- REDCapR::redcap_read_oneshot(
|
||||
redcap_uri = uri,
|
||||
token = token,
|
||||
fields = fields,
|
||||
events = events,
|
||||
forms = forms,
|
||||
records = records,
|
||||
raw_or_label = raw_or_label,
|
||||
...
|
||||
)
|
||||
|
||||
m <-
|
||||
REDCapR::redcap_metadata_read (redcap_uri = uri, token = token)
|
||||
|
||||
l <- REDCap_split(d$data,
|
||||
m$data[m$data$field_name %in% names(d$data), ],
|
||||
forms = "all")
|
||||
|
||||
lapply(l, function(i) {
|
||||
if (ncol(i) > 2) {
|
||||
s <- data.frame(i[, !colnames(i) %in% generics])
|
||||
i[!apply(is.na(s), MARGIN = 1, FUN = all), ]
|
||||
} else {
|
||||
i
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
50
man/read_redcap_tables.Rd
Normal file
50
man/read_redcap_tables.Rd
Normal file
@ -0,0 +1,50 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/read_redcap_tables.R
|
||||
\name{read_redcap_tables}
|
||||
\alias{read_redcap_tables}
|
||||
\title{Download REDCap data}
|
||||
\usage{
|
||||
read_redcap_tables(
|
||||
uri,
|
||||
token,
|
||||
records = NULL,
|
||||
fields = NULL,
|
||||
events = NULL,
|
||||
forms = NULL,
|
||||
raw_or_label = "label",
|
||||
generics = c("record_id", "redcap_event_name", "redcap_repeat_instrument",
|
||||
"redcap_repeat_instance"),
|
||||
...
|
||||
)
|
||||
}
|
||||
\arguments{
|
||||
\item{uri}{REDCap database uri}
|
||||
|
||||
\item{token}{API token}
|
||||
|
||||
\item{records}{records to download}
|
||||
|
||||
\item{fields}{fields to download}
|
||||
|
||||
\item{events}{events to download}
|
||||
|
||||
\item{forms}{forms to download}
|
||||
|
||||
\item{raw_or_label}{raw or label tags}
|
||||
|
||||
\item{generics}{vector of auto-generated generic variable names to
|
||||
ignore when discarding empty rows}
|
||||
|
||||
\item{...}{ekstra parameters for REDCapR::redcap_read_oneshot}
|
||||
}
|
||||
\value{
|
||||
list of instruments
|
||||
}
|
||||
\description{
|
||||
Wrapper function for using REDCapR::redcap_read and REDCapRITS::REDCap_split
|
||||
including some clean-up. Works with longitudinal projects with repeating
|
||||
instruments.
|
||||
}
|
||||
\examples{
|
||||
# Examples will be provided later
|
||||
}
|
7
tests/testthat/test-read_redcap_tables.R
Normal file
7
tests/testthat/test-read_redcap_tables.R
Normal file
@ -0,0 +1,7 @@
|
||||
# Unit Test
|
||||
|
||||
# Test that the function throws an error when uri and token are not provided
|
||||
test_that("read_redcap_tables throws error when uri and token are not provided",
|
||||
{
|
||||
testthat::expect_error(read_redcap_tables(uri, token))
|
||||
})
|
Loading…
Reference in New Issue
Block a user