Based on the current analysis, value from the UI, an optional list of patterns to search, and column names from a dataset this function tries to find a default value for a column in the analysis (e.g. subject id, dose, concentration, etc).
Generally the following is done:
If curr_ui has a non-NULL, non-"" value it is compared to dscols. If it is found there that value is returned.
If not then the patterns are considered. If the patterns from the YAML file are not NULL they are compared sequentially to the columns names. The first match found is returned.
If nothing is found then the first value of dscols is returned.
Examples
library(ruminate)
# Module IDs
id = "NCA"
id_UD = "UD"
id_DW = "DW"
id_ASM = "ASM"
# We need session and input variables to be define
sess_res = NCA_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: 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
#> → 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: State initialized
#> → DW: module checksum updated:5b0f0b05ee3ac7336a74c564bb6efdad
#> → DW: loading data view idx: 1
#> → DW: setting name: Observations
#> → DW: module checksum updated:1ac3e0afcc601f848943f92b854b3830
#> → DW: -> filter
#> → DW: module checksum updated:67aff6e926eba73b3ecb361d26624844
#> → DW: -> filter
#> → DW: module checksum updated:0234f6d458ef7487a3b2e991b2d0957b
#> → DW: -> mutate
#> → DW: module checksum updated:37d0958f042076b974fdd3f894157822
#> → DW: loading data view idx: 2
#> → DW: setting name: PK 3mg SD IV
#> → DW: module checksum updated:4e7ca05728d66df3adfcf87387f9543a
#> → DW: -> filter
#> → DW: module checksum updated:2d95bc56262f46b7f135dd33fc4722b3
#> → DW: -> filter
#> → DW: module checksum updated:b8a30837145926d2d9cc6f788c10b7ed
#> → DW: -> filter
#> → DW: module checksum updated:24b554ee8736ebc84979c896ac2e93c3
#> → DW: -> filter
#> → DW: module checksum updated:daad88263faf7cbf90871ed00a0dd275
#> → DW: loading data view idx: 3
#> → DW: setting name: PK 3mg SD IV (NCA)
#> → DW: module checksum updated:a7b3ea35cdba272682716aa4619d3983
#> → DW: -> filter
#> → DW: module checksum updated:e8d2f77c0bd731995d845ee8be623e22
#> → DW: -> filter
#> → DW: module checksum updated:24cc7b591ca756a0abf560fb5295e04d
#> → DW: -> filter
#> → DW: module checksum updated:f79ef26bdb4dac420c24650b9e96f721
#> → DW: loading data view idx: 4
#> → DW: setting name: PKPD 3mg SD IV (NCA)
#> → DW: module checksum updated:c737e8b3a28ba600a83ddf58a969c90a
#> → DW: -> filter
#> → DW: module checksum updated:4c0d054f8ec47ae97fd1c650d8ddad55
#> → DW: -> filter
#> → DW: module checksum updated:1e3d65ec1bd6ee5850d67bd2250e3223
#> → DW: -> filter
#> → DW: module checksum updated:1e3d65ec1bd6ee5850d67bd2250e3223
#> → DW: module isgood: TRUE
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → NCA: dest: file.path("config","report.docx")
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → NCA: dest: file.path("config","report.pptx")
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → NCA: dest: file.path("config","report.yaml")
#> ✖ NCA: Parameter specified in YAML is not a valid PKNCA parameter: sparse_se
#> ✖ NCA: Parameter specified in YAML is not a valid PKNCA parameter: sparse_df
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → NCA: dest: file.path("config","report.docx")
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → NCA: dest: file.path("config","report.pptx")
#> → NCA: including file
#> → NCA: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → NCA: dest: file.path("config","report.yaml")
#> → NCA: State initialized
#> → NCA: State initialized
#> → NCA: loading element idx: 1
#> → NCA: -> setting name: PK Example
#> → NCA: -> notes found and set
#> → NCA: -> setting data source: DW_myDS_3
#> → NCA: NCA_add_int: append
#> → NCA: NCA_add_int: append
#> → NCA: added element idx: 1
#> → NCA: loading element idx: 2
#> → NCA: -> setting name: PK/PD Example
#> → NCA: -> notes found and set
#> → NCA: -> setting data source: DW_myDS_4
#> → NCA: NCA_add_int: append
#> → NCA: NCA_add_int: append
#> → NCA: added element idx: 2
#> → NCA: module isgood: TRUE
# Extracting the session and input variables
session = sess_res$session
input = sess_res$input
react_state = list()
# We also need configuration files
FM_yaml_file = system.file(package = "formods", "templates", "formods.yaml")
MOD_yaml_file = system.file(package = "ruminate", "templates", "NCA.yaml")
# Getting the current module state
state = NCA_fetch_state(id = id,
input = input,
session = session,
FM_yaml_file = FM_yaml_file,
MOD_yaml_file = MOD_yaml_file,
id_ASM = id_ASM,
id_UD = id_UD,
id_DW = id_DW,
react_state = react_state)
# Pulls out the active analysis
current_ana = NCA_fetch_current_ana(state)
# This will get the dataset associated with this analysis
ds = NCA_fetch_ana_ds(state, current_ana)
# After making changes you can update those in the state
state = NCA_set_current_ana(state, current_ana)
# You can use this to check the current analysis
current_ana = NCA_process_current_ana(state)
# This will pull out the code for the module
fc_res = NCA_fetch_code(state)
# This will use patterns defined for the site to detect
# columns. In this example we are detecting the id column:
id_col = NCA_find_col(
patterns = state[["MC"]][["detect_col"]][["id"]],
dscols = names(ds$DS))
#> Warning: Unknown or uninitialised column: `DS`.
# This creates a new analysis
state = NCA_new_ana(state)