This function allows you to identify queries using a particular expression/filter. It can be used to identify missing values or to identify values outside the lower and upper limits of a variable.
Usage
rd_query(
...,
variables = NA,
expression = NA,
negate = FALSE,
event = NA,
filter = NA,
addTo = NA,
variables_names = NA,
query_name = NA,
instrument = NA,
report_title = NA,
report_zeros = FALSE,
by_dag = FALSE,
link = list(),
data = NULL,
dic = NULL,
event_form = NULL
)
Arguments
- ...
List containing the data, dictionary and event mapping (if required) of the REDCap project. This should be the output of the `redcap_data` function.
- variables
Character vector containing the names of the database variables to be checked.
- expression
Character vector of expressions to apply to the selected variables.
- negate
Logical value indicating whether the defined expression should be negated. Default value is `FALSE`.
- event
The name of the REDCap event to analyze. If there are events in your REDCap project, you should use this argument to name the event to which the defined variables belong.
- filter
A filter to be applied to the dataset. For example, this argument can be used to apply the branching logic of a defined variable.
- addTo
Data frame corresponding to a previous query data frame to which you can add the new query data frame. By default, this function always creates a new data frame regardless previous reports.
- variables_names
Character vector containing the description of each selected variable. By default, the function automatically takes the description of each variable from of the REDCap project dictionary.
- query_name
Description of the query. It can be the same for all variables, or you can define a different one for each variable. By default, this function defines it as `The value is [value] and it should not be [expression]'`.
- instrument
REDCap instrument to which the variables belong. It can be the same for all variables, or you can define a different one for each variable. By default, the function automatically selects the corresponding instrument of each variable from the REDCap project dictionary.
- report_title
Character string specifying the title of the report.
- report_zeros
Logical. If `TRUE`, the function returns a report containing variables with zero queries.
- by_dag
Logical. If `TRUE`, both elements of the output will be grouped by the Data Access Groups (DAGs) of the REDCap project.
- link
List containing project information used to create a web link to each query.
- data
Data frame containing the data read from REDCap. If the list is given, this argument is not required.
- dic
Data frame containing the dictionary read from REDCap. If the list is given, this argument is not required.
- event_form
Data frame containing the correspondence of each event with each form. If the list is specified, this argument is not required.
Value
A list with a data frame of 9 columns (10 columns, if the link argument is specified) meant to help the user identify each query and a table with the total number of queries per variable.
Examples
# Missing values
example <- rd_query(covican,
variables = c("copd", "age"),
expression = c("is.na(x)", "x %in% NA"),
event = "baseline_visit_arm_1")
example
#> $queries
#> # A tibble: 11 × 9
#> Identifier DAG Event Instrument Field Repetition Description Query Code
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 100-58 Hospita… Base… Comorbidi… copd - Chronic ob… The … 100-…
#> 2 102-113 Hospita… Base… Demograph… age - Age The … 102-…
#> 3 105-11 Hospita… Base… Comorbidi… copd - Chronic ob… The … 105-…
#> 4 105-11 Hospita… Base… Demograph… age - Age The … 105-…
#> 5 105-56 Hospita… Base… Comorbidi… copd - Chronic ob… The … 105-…
#> 6 105-56 Hospita… Base… Demograph… age - Age The … 105-…
#> 7 112-15 Hospita… Base… Comorbidi… copd - Chronic ob… The … 112-…
#> 8 117-11 Hospita… Base… Comorbidi… copd - Chronic ob… The … 117-…
#> 9 117-11 Hospita… Base… Demograph… age - Age The … 117-…
#> 10 117-22 Hospita… Base… Comorbidi… copd - Chronic ob… The … 117-…
#> 11 117-22 Hospita… Base… Demograph… age - Age The … 117-…
#>
#> $results
#> <table class="table table-striped table-condensed" style="width: auto !important; margin-left: auto; margin-right: auto;">
#> <caption>Report of queries</caption>
#> <thead>
#> <tr>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Variables </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Description </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Event </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Query </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Total </th>
#> </tr>
#> </thead>
#> <tbody>
#> <tr>
#> <td style="text-align:center;"> copd </td>
#> <td style="text-align:center;"> Chronic obstructive pulmonary disease </td>
#> <td style="text-align:center;"> Baseline visit </td>
#> <td style="text-align:center;"> The value should not be missing </td>
#> <td style="text-align:center;"> 6 </td>
#> </tr>
#> <tr>
#> <td style="text-align:center;"> age </td>
#> <td style="text-align:center;"> Age </td>
#> <td style="text-align:center;"> Baseline visit </td>
#> <td style="text-align:center;"> The value should not be missing </td>
#> <td style="text-align:center;"> 5 </td>
#> </tr>
#> </tbody>
#> </table>
# Expression
example <- rd_query(covican,
variables="age",
expression="x>20",
event="baseline_visit_arm_1")
example
#> $queries
#> # A tibble: 185 × 9
#> Identifier DAG Event Instrument Field Repetition Description Query Code
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 100-6 Hospita… Base… Demograph… age - Age The … 100-…
#> 2 100-13 Hospita… Base… Demograph… age - Age The … 100-…
#> 3 100-16 Hospita… Base… Demograph… age - Age The … 100-…
#> 4 100-31 Hospita… Base… Demograph… age - Age The … 100-…
#> 5 100-34 Hospita… Base… Demograph… age - Age The … 100-…
#> 6 100-36 Hospita… Base… Demograph… age - Age The … 100-…
#> 7 100-52 Hospita… Base… Demograph… age - Age The … 100-…
#> 8 100-58 Hospita… Base… Demograph… age - Age The … 100-…
#> 9 100-65 Hospita… Base… Demograph… age - Age The … 100-…
#> 10 100-66 Hospita… Base… Demograph… age - Age The … 100-…
#> # ℹ 175 more rows
#>
#> $results
#> <table class="table table-striped table-condensed" style="width: auto !important; margin-left: auto; margin-right: auto;">
#> <caption>Report of queries</caption>
#> <thead>
#> <tr>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Variables </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Description </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Event </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Query </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Total </th>
#> </tr>
#> </thead>
#> <tbody>
#> <tr>
#> <td style="text-align:center;"> age </td>
#> <td style="text-align:center;"> Age </td>
#> <td style="text-align:center;"> Baseline visit </td>
#> <td style="text-align:center;"> The value should not be greater than 20 </td>
#> <td style="text-align:center;"> 185 </td>
#> </tr>
#> </tbody>
#> </table>
# Using the filter argument
example <- rd_query(covican,
variables = "potassium",
expression = "is.na(x)",
event = "baseline_visit_arm_1",
filter = "available_analytics=='1'")
#> Warning: The branching logic of the following variable was applied automatically: potassium
example
#> $queries
#> # A tibble: 21 × 9
#> Identifier DAG Event Instrument Field Repetition Description Query Code
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 102-6 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 2 102-13 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 3 102-23 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 4 102-27 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 5 102-30 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 6 102-39 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 7 102-48 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 8 102-60 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 9 102-64 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> 10 102-73 Hospita… Base… Laborator… pota… - Potassium The … 102-…
#> # ℹ 11 more rows
#>
#> $results
#> <table class="table table-striped table-condensed" style="width: auto !important; margin-left: auto; margin-right: auto;">
#> <caption>Report of queries</caption>
#> <thead>
#> <tr>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Variables </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Description </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Event </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Query </th>
#> <th style="text-align:center;border-bottom: 1px solid grey"> Total </th>
#> </tr>
#> </thead>
#> <tbody>
#> <tr>
#> <td style="text-align:center;"> potassium </td>
#> <td style="text-align:center;"> Potassium </td>
#> <td style="text-align:center;"> Baseline visit </td>
#> <td style="text-align:center;"> The value should not be missing </td>
#> <td style="text-align:center;"> 21 </td>
#> </tr>
#> </tbody>
#> </table>