--- title: "REDCapDM - Data reading and processing" output: rmarkdown::html_vignette: toc: true toc_depth: 5 number_sections: true vignette: > %\VignetteIndexEntry{REDCapDM - Data reading and processing} %\VignetteEncoding{UTF-8} %\VignetteEngine{knitr::rmarkdown} editor_options: chunk_output_type: inline --- ```{r message=FALSE, warning=FALSE, include=FALSE} rm(list = ls()) library(REDCapDM) library(kableExtra) library(knitr) library(dplyr) library(magrittr) library(purrr) ```
This vignette provides a summary of the straightforward and common use of [REDCapDM](https://github.com/bruigtp/REDCapDM) to interact with [REDCap](https://www.project-redcap.org/) data.
# **Read data** To import data from [REDCap](https://www.project-redcap.org/), you can use the [`redcap_data()`](https://bruigtp.github.io/REDCapDM/reference/redcap_data.html) function, which provides two primary methods: importing data from local files or establishing an API connection. ## **Local files** Before starting, ensure you have the required R and CSV files exported from [REDCap](https://www.project-redcap.org/), including the instrument-event mappings file. All these files should be in the same directory for the package to work correctly. Use the `data_path` and `dic_path` arguments to indicate the paths to your R data file and [REDCap](https://www.project-redcap.org/) project's dictionary file, respectively. If your [REDCap](https://www.project-redcap.org/) project is longitudinal, you'll additionally need to supply the event-form mapping file using the `event_path` argument. ```{r message=FALSE, warning=FALSE, comment=NA, eval=FALSE} dataset <- redcap_data(data_path = "C:/Users/username/example.r", dic_path = "C:/Users/username/example_dictionary.csv", event_path = "C:/Users/username/events.csv") ``` ## **API connection** If you opt for an API connection, you can provide the `uri` (uniform resource identifier) and `token` (user-specific password) for your [REDCap](https://www.project-redcap.org/) project. This method will automatically retrieve the event-form mapping if your project is longitudinal. Use both arguments to set up the API connection and import the data: ```{r eval=FALSE, message=FALSE, warning=FALSE, comment=NA} dataset_api <- redcap_data(uri = "https://redcap.idibell.cat/api/", token = "55E5C3D1E83213ADA2182A4BFDEA") ``` ## **Output** The [`redcap_data()`](https://bruigtp.github.io/REDCapDM/reference/redcap_data.html) function returns a list with three elements: - Imported data: Contains the data from your [REDCap](https://www.project-redcap.org/) project - Dictionary: Provides information about variables and their associated labels. - Event-form mapping (only available for longitudinal projects): Describes the correspondence between events and forms in your project.

# **Process data** Having successfully imported our data into R, you can now use the [`rd_transform()`](https://bruigtp.github.io/REDCapDM/reference/rd_transform.html) function to start processing the data. This function performs several transformations: - Elimination of selected variables - Elimination of variables containing certain patterns such as '_complete' and '_timestamp' - Recalculation of [REDCap](https://www.project-redcap.org/) calculated fields - Checkbox transformation by changing their names to the names of their options - Replacement of the original variables with their factor version - Branching logic transformation, converting [REDCap](https://www.project-redcap.org/) logic to R logic. ## **Standard** The only essential elements that must be supplied are the dataset to be transformed and the corresponding dictionary. In the case of a longitudinal project, it is advisable to also specify the event form dataset to take full advantage of this function. These elements can be directly specified using the output of the [`redcap_data()`](https://bruigtp.github.io/REDCapDM/reference/redcap_data.html) function or separately using distinct arguments: ```{r message=FALSE, warning=FALSE, comment=NA} #Option A: list object covican_transformed <- rd_transform(covican) #Option B: separately with different arguments covican_transformed <- rd_transform(data = covican$data, dic = covican$dictionary, event_form = covican$event_form) ``` This function returns a list containing the transformed dataset, dictionary, event_form and the results of each transformation. To retrieve the results of the transformation, use the following code block: ```{r message=FALSE, warning=FALSE, comment=NA} #Print the results of the transformation covican_transformed$results ``` ## **By event** If the [REDCap](https://www.project-redcap.org/) project is longitudinal, you can further adjust the structure of the transformed dataset. For example, it can be split by event: ```{r message=FALSE, warning=FALSE, comment=NA} dataset <- rd_transform(covican, final_format = "by_event") ``` Where the transformed dataset is a tibble object, containing data frames for each event in the [REDCap](https://www.project-redcap.org/) project. ```{r message=FALSE, warning=FALSE, comment="#>", collapse = TRUE} dataset$data ``` ## **By form** Or, alternatively, it can be split by form: ```{r message=FALSE, warning=FALSE, comment=NA} dataset <- rd_transform(covican, final_format = "by_form") ``` Where the tibble object is composed by data frames corresponding to each form in the [REDCap](https://www.project-redcap.org/) project. ```{r message=FALSE, warning=FALSE, comment="#>", collapse = TRUE} dataset$data ```

**For more information, consult the complete vignette available at: https://bruigtp.github.io/REDCapDM/articles/REDCapDM.html**