dbFindFields {ctrdata} | R Documentation |
Find names of fields in the database collection
Description
Given part of the name of a field of interest to the user, this
function returns the full field names used in records that were
previously loaded into a collection
(using ctrLoadQueryIntoDb). Only names of fields that have
a value in the collection can be returned.
Set sample = FALSE
to force screening all records in the
collection for field names, see below.
Usage
dbFindFields(namepart = ".*", con, sample = TRUE, verbose = FALSE)
Arguments
namepart |
A character string (can be a regular expression, including Perl-style) to be searched among all field names (keys) in the collection, case-insensitive. The default '".*"' lists all fields. |
con |
A connection object, see section 'Databases' in ctrdata. |
sample |
If |
verbose |
If |
Details
The full names of child fields are returned in dot notation (e.g.,
clinical_results.outcome_list.outcome.measure.class_list.class.title
)
In addition, names of parent fields (e.g.,
clinical_results
) are returned.
Data in parent fields is typically complex (nested), see
dfTrials2Long for easily handling it.
For field definitions of the registers, see
"Definition" in ctrdata-registers.
Note: When dbFindFields
is first called after
ctrLoadQueryIntoDb, it will take a moment.
Value
Vector of strings with full names of field(s) found, ordered by register and alphabet, see examples. Names of the vector are the names of the register holding the respective fields. The field names can be fed into dbGetFieldsIntoDf to extract the data for the field(s) from the collection into a data frame.
Examples
dbc <- nodbi::src_sqlite(
dbname = system.file("extdata", "demo.sqlite", package = "ctrdata"),
collection = "my_trials"
)
dbFindFields(namepart = "date", con = dbc)[1:5]
# view all 3350+ fields from all registers:
allFields <- dbFindFields(con = dbc, sample = FALSE)
if (interactive()) View(data.frame(
register = names(allFields),
field = allFields))