decision: Make decision point

View source: R/decision.R

decisionR Documentation

Make decision point



Formalise process of decision making. Creates a decision point in the workflow where subsequent parts of your workflow depend on this decision, e.g. if you compare a 1 compartment and 2 compartment and decide based on the OFV and goodness of fit plots that the 1 compartment model is better and subsequent steps will build off of this, it is worth putting a decision point in your code so that if you are to rerun the workflow with a new/updated dataset, the decision can be revisited prior to moving onto the parts of the workflow that depend on the 1 compartment decision. The function requests inputs (values and files) that you base a decision on and stop for users to remake decision if inputs change.


  auto = logical(),
  inputs = c(),
  file_inputs = c(),
  outcome = character(),
  force = FALSE



Optional logical. logical statement for automatic decisions.


Optional non file names upon which decision depends.


Optional file names upon which decision depends.


Character. Description of the decision outcome.


Logical (default = FALSE). Force a stop in the workflow so decision has been remade.


There are two ways to use decision:


An auto decision (see examples below) works like stopifnot(). It requires a logical (TRUE/FALSE) condition. Doing this this way ensures that creates fewer points in your workflow where at the cost of removing. If updating a workflow (e.g. with an updated dataset), so long as the TRUE/FALSE is TRUE, the workflow will proceed uninterrupted. If the condition flips to FALSE the workflow will stop as it will be assumed that subsequent steps will no longer be valid.


Manual: Requires specification of either input or file_inputs (or both) AND outcome. Inputs represent information you have considered in your decision and outcome is a text description of the resulting decision. The assumption made is that if inputs have not changed since the last decision was made.


No return value, called for side effects.


# create example object m1 from package demo files
exdir <- system.file("extdata", "examples", "theopp", package = "NMproject")
m1 <- new_nm(run_id = "m1", 
             based_on = file.path(exdir, "Models", "ADVAN2.mod"),
             data_path = file.path(exdir, "SourceData", "THEOPP.csv"))
m2 <- m1 %>% child("m2")
m2WT <- m1 %>% child("m2WT")

## Not run: 


## a decision based on summary statistics
  inputs = summary_wide(c(m1, m2, m2WT)),
  outcome = "m1 is better"
) # next line must be end of chunk

## a decision based also on goodness of fit plots
  inputs = summary_wide(c(m1, m2, m2WT)),
  file_inputs = c(
  outcome = "m1 is better"
) # next line must be end of chunk

## a decision based on an automatic TRUE/FALSE criteria
## here we're ensuring m1 has the lowest AIC
decision(AIC(m1) == min(AIC(m1, m2, m3)))


## End(Not run)

NMproject documentation built on Sept. 30, 2022, 1:06 a.m.