Returns a list of avaliable data sources for a given data wrangling
element. This includes any modules the DW module can pull from (e.g. UD and
DM) as well as any data views defined before the provided dw_view
.
If dw_view
is NULL then only the sources from the modules DW is
dependent on will be returned.
Value
list with the following elements
choices: List of values to use with selectInput()/pickerInput()
plain: Raw vector of choices
labeled: Named vector of choices
grouped: Choices grouped by module
catalog: Dataframe containing the a tabular catalog of the datasets found.
label: Text label
object: Name of the R Object containing the data frame
MOD_TYPE: Short name of the type of module
id: Module ID
idx: Numerical identifier within the module
res_label: optional label that can be defined by a user and used in workflows. Must be unique to the module.
checksum: Module checksum
DSchecksum: Checksum of the dataset
code: Code to generate the dataset
FM_objs: List of object names that come from other formods modules
DW_objs: List of object names that come from the current DW module
Examples
library(formods)
# The example requires a formods DW state object
sess_res = DW_test_mksession()
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → ASM: dest: file.path("config","report.docx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → ASM: dest: file.path("config","report.pptx")
#> → ASM: including file
#> → ASM: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → ASM: dest: file.path("config","report.yaml")
#> → ASM: State initialized
#> → ASM: setting word placeholders:
#> → ASM: -> setting docx ph: HEADERLEFT = left header
#> → ASM: -> setting docx ph: HEADERRIGHT = right header
#> → ASM: -> setting docx ph: FOOTERLEFT = left footer
#> → ASM: module isgood: TRUE
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → UD: dest: file.path("config","report.docx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → UD: dest: file.path("config","report.pptx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → UD: dest: file.path("config","report.yaml")
#> → UD: State initialized
#> → UD: module checksum updated:897d952fecbc804999396a96f9df4b20
#> → UD: module isgood: TRUE
#> → DM: including file
#> → DM: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DM: dest: file.path("config","report.docx")
#> → DM: including file
#> → DM: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DM: dest: file.path("config","report.pptx")
#> → DM: including file
#> → DM: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DM: dest: file.path("config","report.yaml")
#> → DM: module checksum updated: 441abbd92e02d893eb5136ccdfcc717d
#> → DM: State initialized
#> → DM: ds checksum updated: 641fcbc6616d24d05acded4317a3bb12
#> → DM: module checksum updated: 5c077c5702479f330bf233040eb4a51b
#> → DM: adding preload sources
#> → DM: - file added: TEST_DATA.xlsx
#> → DM: added: TEST_DATA.xlsx
#> → DM: - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_PC.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_PC.csv
#> → DM: - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_EX.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_EX.csv
#> → DM: - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_DM.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_DM.csv
#> → DM: loading element idx: 1
#> → DM: ds checksum updated: 0cc906570cc2b59c9119c429de647914
#> → DM: module checksum updated: 5c33742ed18f5cbb14b419f69997b670
#> → DM: added element idx: 1
#> → DM: loading element idx: 2
#> → DM: ds checksum updated: a39f2e70b4d7a7a47b86e21a36c1d995
#> → DM: module checksum updated: d6d5737b29d58369a357e8059c9467d5
#> → DM: added element idx: 2
#> → DM: loading element idx: 3
#> → DM: ds checksum updated: b058f2ce7aeb394f090d25abd559651c
#> → DM: module checksum updated: b73e157465a477302b1aad81ecfa6389
#> → DM: added element idx: 3
#> → DM: loading element idx: 4
#> → DM: ds checksum updated: 67a6efb40f90704476c42ea85fb39305
#> → DM: module checksum updated: eec1f60ebd16c44ffc77dbe3a192d101
#> → DM: added element idx: 4
#> → DM: module isgood: TRUE
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DW: dest: file.path("config","report.docx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DW: dest: file.path("config","report.pptx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DW: dest: file.path("config","report.yaml")
#> → DW: data view checksum updated:
#> → DW: old:
#> → DW: new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:a9496b622f92f683cc8c69f65ac1ece4
#> → DW: State initialized
#> → DW: data view checksum updated:
#> → DW: old:
#> → DW: new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:0955d1f9a1922b95277b4ad1df38e987
#> → DW: data view checksum updated:
#> → DW: old:
#> → DW: new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:3d3523604fcde20ce1792b16611bdba2
#> → DW: data view checksum updated:
#> → DW: old:
#> → DW: new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:dfec3d5aa14c2716ccf367706931693f
#> → DW: loading data view idx: 1
#> → DW: -> setting data source: myDS
#> → DW: setting name: Observations
#> → DW: module checksum updated:4d9fd3d913355669d14e0ac710b0b5dc
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: e19ddb59715ba77afdd1907053aa5d14
#> → DW: new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:2aba88838dee694a3d2813ed9f2837d2
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: new: 278da634fa74dc23eae6db31314e0324
#> → DW: module checksum updated:c181a352a2bd3592494d917b87057086
#> → DW: -> mutate
#> → DW: data view checksum updated:
#> → DW: old: 278da634fa74dc23eae6db31314e0324
#> → DW: new: a164ecd5a527b2b38058230c1daa0080
#> → DW: module checksum updated:048df4e8afa9494121e72808981c842c
#> → DW: loading data view idx: 2
#> → DW: -> setting data source: myDS
#> → DW: setting name: PK 3mg SD IV
#> → DW: module checksum updated:c54c6fc20ff13fd14fbb61c786f65078
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: e19ddb59715ba77afdd1907053aa5d14
#> → DW: new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:496c1149f14ec1c48d4ddbc5aec72a72
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: new: 278da634fa74dc23eae6db31314e0324
#> → DW: module checksum updated:d65a6b3c16bea4262f7fb15a1d961512
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 278da634fa74dc23eae6db31314e0324
#> → DW: new: 00bd5f01d02d634acf134cf01970a1c3
#> → DW: module checksum updated:f90816b8f2ef9aeaad82e4a00880e536
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 00bd5f01d02d634acf134cf01970a1c3
#> → DW: new: a01562e32a19fd4b10f88ace089346c6
#> → DW: module checksum updated:452fc9d9131592650a93b4b49de961d1
#> → DW: loading data view idx: 3
#> → DW: -> setting data source: myDS
#> → DW: setting name: PK 3mg SD IV (NCA)
#> → DW: module checksum updated:3b177ed09a80dfaf15c9f3dde8b9a8fb
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: e19ddb59715ba77afdd1907053aa5d14
#> → DW: new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:ce7e35b3bc2e1f53088ae7edd5b4345e
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: new: 198f7d878f23121868e677c0b86a5f3c
#> → DW: module checksum updated:64a5146d5e7070664557a7ff3d80f6f0
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 198f7d878f23121868e677c0b86a5f3c
#> → DW: new: 4326a7b6b9040676b320b387ba5b8ad9
#> → DW: module checksum updated:2cf968d6e72262f9274ea0389f717e84
#> → DW: loading data view idx: 4
#> → DW: -> setting data source: myDS
#> → DW: setting name: PKPD 3mg SD IV (NCA)
#> → DW: module checksum updated:67e9d6e6b2e085808be155613f8efe20
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: e19ddb59715ba77afdd1907053aa5d14
#> → DW: new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:a7a211de4eb91c91098a1f20e62bec73
#> → DW: -> filter
#> → DW: data view checksum updated:
#> → DW: old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: new: 198f7d878f23121868e677c0b86a5f3c
#> → DW: module checksum updated:306f66790aca305ff1b715f34802610e
#> → DW: -> filter
#> → DW: module isgood: TRUE
#> → # preload_complete is good: TRUE ------------------------------------------
state = sess_res$state
session = sess_res$session
state[["DW"]][["ui"]][["select_dw_element"]] = "filter"
state[["DW"]][["ui"]][["select_fds_filter_column"]] = "EVID"
state[["DW"]][["ui"]][["select_fds_filter_operator"]] = "=="
state[["DW"]][["ui"]][["fds_filter_rhs"]] = 0
# This builds the data wrangling statement based on
# elemets scraped from the UI
dwb_res = dwrs_builder(state)
# Here we evaluate the resulting command:
dwee_res = dw_eval_element(state, dwb_res[["cmd"]])
# Next we add this wrangling element to the state
state = DW_add_wrangling_element(
state = state,
session = session,
dwb_res = dwb_res,
dwee_res = dwee_res)
# This creates a new data view and makes it active
state = DW_new_view(state)
#> → DW: data view checksum updated:
#> → DW: old:
#> → DW: new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:9977a27298f6aaec5ed4d8fbf0d4563a
# Here we can pluck out that data view from the state
current_view = DW_fetch_current_view(state)
# This will update the key in this view
current_view[["key"]] = "My new view"
# And this will place it back into the state
state = DW_set_current_view(state, session, current_view)
#> → DW: module checksum updated:0ab95fcc31d9d3ca9b3595984babc650
# This will pull out the available sources for the current data view.
# This is used when doing merging:
avail_ds = DW_fetch_available_sources(state, session, dw_view=current_view)
# This will pull out the meta data for a given object
ds_obj = avail_ds[["catalog"]][["object"]][1]
ds_meta = DW_fetch_obj_ds_meta(
state = state,
session = session,
dw_view=current_view,
ds_obj=ds_obj)