Title: | A System for Planing Analyses |
---|---|
Description: | A system to plan analyses within the mental model where you have one (or more) datasets and want to run either A) the same function multiple times with different arguments, or B) multiple functions. This is appropriate when you have multiple strata (e.g. locations, age groups) that you want to apply the same function to, or you have multiple variables (e.g. exposures) that you want to apply the same statistical method to, or when you are creating the output for a report and you need multiple different tables or graphs. |
Authors: | Richard Aubrey White [aut, cre]
|
Maintainer: | Richard Aubrey White <[email protected]> |
License: | MIT + file LICENSE |
Version: | 2022.11.23 |
Built: | 2025-02-12 05:42:42 UTC |
Source: | https://github.com/csids/plnr |
Create example rmarkdown project
create_rmarkdown(home)
create_rmarkdown(home)
home |
Location of the 'home' directory |
An example action_fn for an analysis
example_action_fn(data, argset)
example_action_fn(data, argset)
data |
Named list. |
argset |
Named list. |
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$run_one("analysis_1")
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$run_one("analysis_1")
An example data_fn that returns a data set
example_data_fn_nor_covid19_cases_by_time_location()
example_data_fn_nor_covid19_cases_by_time_location()
The same as purrr::cross, but doesn't require an extra list()
expand_list(...)
expand_list(...)
... |
Dots |
plnr::expand_list( a = 1:2, b = c("a", "b") )
plnr::expand_list( a = 1:2, b = c("a", "b") )
base::get does not work with package scoping (e.g. get("pkg::var")). plnr::get_anything works with package scoping.
get_anything(x)
get_anything(x)
x |
the string that we are getting |
plnr::get_anything("plnr::nor_covid19_cases_by_time_location")
plnr::get_anything("plnr::nor_covid19_cases_by_time_location")
This function determines if it is being called from within a function or if it is being run directly
is_run_directly()
is_run_directly()
This data comes from the Norwegian Surveillance System for Communicable Diseases (MSIS). The date corresponds to when the PCR-test was taken.
nor_covid19_cases_by_time_location
nor_covid19_cases_by_time_location
A csfmt_rts_data_v1 with 11028 rows and 18 variables:
day/isoweek
nation, county
nor
norge, 11 counties
2020
total
Isoyear of event
Isoweek of event
Isoyearweek of event
Season of event
Seasonweek of event
Calyear of event
Calmonth of event
Calyearmonth of event
Date of event
Number of confirmed covid19 cases
Number of confirmed covid19 cases per 100.000 population
The raw number of cases and cases per 100.000 population are recorded.
This data was extracted on 2022-05-04.
We work within the mental model where we have one (or more) datasets and we want to run multiple analyses on these datasets.
By demanding that all analyses use the same data sources we can:
Be efficient with requiring the minimal amount of data-pulling (this only happens once at the start).
Better enforce the concept that data-cleaning and analysis should be completely separate.
By demanding that all analysis functions only use two arguments (data and argset) we can:
Reduce mental fatigue by working within the same mental model for each analysis.
Make it easier for analyses to be exchanged with each other and iterated on.
Easily schedule the running of each analysis.
By including all of this in one Plan
class, we can easily maintain a good overview of all the analyses (i.e. outputs) that need to be run.
An argset is:
a set of arguments
An analysis is:
one argset
one (action) function
A plan is:
one data pull
a list of analyses
analyses
List of analyses.
new()
Create a new Plan instance.
Plan$new(verbose = interactive() | config$force_verbose, use_foreach = FALSE)
verbose
Should this plan be verbose?
use_foreach
???
add_data()
Add a new data set.
Plan$add_data(name, fn = NULL, fn_name = NULL, direct = NULL)
name
Name of the data set.
fn
A function that returns the data set.
fn_name
A character string containing the name of a function that returns the data set.
direct
A direct data set.
p <- plnr::Plan$new() data_fn <- function(){return(plnr::nor_covid19_cases_by_time_location)} p$add_data("data_1", fn = data_fn) p$add_data("data_2", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_data("data_3", direct = plnr::nor_covid19_cases_by_time_location) p$get_data()
add_argset()
Add a new argset.
Plan$add_argset(name = uuid::UUIDgenerate(), ...)
name
Name of the (eventual) analysis that this argset will be connected to.
...
Named arguments that will comprise the argset.
p <- plnr::Plan$new() p$add_argset("argset_1", var_1 = 3, var_b = "hello") p$add_argset("argset_2", var_1 = 8, var_c = "hello2") p$get_argsets_as_dt()
add_argset_from_df()
Add a batch of argsets from a data.frame.
Plan$add_argset_from_df(df)
df
A data.frame where each row is a new argset, and each column will be a named element in the argset.
p <- plnr::Plan$new() batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_argset_from_df(batch_argset_df) p$get_argsets_as_dt()
add_argset_from_list()
Add a batch of argsets from a list.
Plan$add_argset_from_list(l)
l
A list of lists with named elements where each outermost element is a new argset, and each internal named element named element in the argset.
p <- plnr::Plan$new() batch_argset_list <- list( list(name = "a", var_1 = 1, var_2 = "i"), list(name = "b", var_1 = 2, var_2 = "j"), list(name = "c", var_1 = 3, var_2 = "k") ) p$add_argset_from_list(batch_argset_list) p$get_argsets_as_dt()
add_analysis()
Add a new analysis.
Plan$add_analysis(name = uuid::UUIDgenerate(), fn = NULL, fn_name = NULL, ...)
name
Name of the analysis.
fn
Action function.
fn_name
Action function name.
...
Named arguments to be added to the argset.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_analysis( name = "analysis_1", fn_name = "plnr::example_action_fn" ) p$get_argsets_as_dt() p$run_one("analysis_1")
add_analysis_from_df()
Add a batch of analyses from a data.frame.
Plan$add_analysis_from_df(fn = NULL, fn_name = NULL, df)
fn
Action function.
fn_name
Action function name.
df
A data.frame where each row is a new argset, and each column will be a named element in the argset.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_analysis_from_df( fn_name = "plnr::example_action_fn", df = batch_argset_df ) p$get_argsets_as_dt() p$run_one(1)
add_analysis_from_list()
Add a batch of argsets from a list.
Plan$add_analysis_from_list(fn = NULL, fn_name = NULL, l)
fn
Action function.
fn_name
Action function name.
l
A list of lists with named elements where each outermost element is a new argset, and each internal named element named element in the argset.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$run_one("analysis_1")
apply_action_fn_to_all_argsets()
Applies an action function to all the argsets
Plan$apply_action_fn_to_all_argsets(fn = NULL, fn_name = NULL)
fn
Action function.
fn_name
Action function name. p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_argset_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$apply_action_fn_to_all_argsets(fn_name = "plnr::example_action_fn") p$run_one("analysis_1")
apply_analysis_fn_to_all()
Deprecated. Use apply_action_fn_to_all_argsets.
Plan$apply_analysis_fn_to_all(fn = NULL, fn_name = NULL)
fn
Action function.
fn_name
Action function name.
x_length()
Number of analyses in the plan.
Plan$x_length()
x_seq_along()
Generate a regular sequence from 1 to the length of the analyses in the plan.
Plan$x_seq_along()
set_progress()
Set an internal progress bar
Plan$set_progress(pb)
pb
Progress bar.
set_progressor()
Set an internal progressor progress bar
Plan$set_progressor(pb)
pb
progressor progress bar.
set_verbose()
Set verbose flag
Plan$set_verbose(x)
x
Boolean.
set_use_foreach()
Set use_foreach flag
Plan$set_use_foreach(x)
x
Boolean.
get_data()
Extracts the data provided via 'add_data' and returns it as a named list.
Plan$get_data()
Named list, where most elements have been added via add_data
.
One extra named element is called 'hash'. 'hash' contains the data hashes of particular datasets/variables, as calculated using the 'spookyhash' algorithm via digest::digest. 'hash' contains two named elements:
current (the hash of the entire named list)
current_elements (the hash of the named elements within the named list)
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$get_data()
get_analysis()
Extracts an analysis from the plan.
Plan$get_analysis(index_analysis)
index_analysis
Either an integer (1:length(analyses)) or a character string representing the name of the analysis.
An analysis.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_analysis("analysis_1")
get_argset()
Extracts an argset from the plan.
Plan$get_argset(index_analysis)
index_analysis
Either an integer (1:length(analyses)) or a character string representing the name of the analysis.
An argset
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argset("analysis_1")
get_argsets_as_dt()
Gets all argsets and presents them as a data.table.
Plan$get_argsets_as_dt()
Data.table that contains all the argsets within a plan.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt()
run_one_with_data()
Run one analysis (data is provided by user).
Plan$run_one_with_data(index_analysis, data, ...)
index_analysis
Either an integer (1:length(analyses)) or a character string representing the name of the analysis.
data
Named list (generally obtained from p$get_data()).
...
Not used.
Returned value from the action function.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_one_with_data("analysis_1", data)
run_one()
Run one analysis (data is obtained automatically from self$get_data()).
Plan$run_one(index_analysis, ...)
index_analysis
Either an integer (1:length(analyses)) or a character string representing the name of the analysis.
...
Not used.
Returned value from the action function.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_one("analysis_1")
run_all_with_data()
Run all analyses (data is provided by user).
Plan$run_all_with_data(data, ...)
data
Named list (generally obtained from p$get_data()).
...
Not used.
List where each element contains the returned value from the action function.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_all_with_data(data)
run_all()
Run all analyses (data is obtained automatically from self$get_data()).
Plan$run_all(...)
...
Not used.
List where each element contains the returned value from the action function.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all()
run_all_progress()
Run all analyses with a progress bar (data is obtained automatically from self$get_data()).
Plan$run_all_progress(...)
...
Not used.
List where each element contains the returned value from the action function.
p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all_progress()
run_all_parallel()
Run all analyses in parallel (data is obtained automatically from self$get_data()).
This function only works on linux computers and uses pbmcapply
as the parallel backend.
Plan$run_all_parallel(mc.cores = getOption("mc.cores", 2L), ...)
mc.cores
Number of cores to be used.
...
Not used.
List where each element contains the returned value from the action function.
clone()
The objects of this class are cloneable with this method.
Plan$clone(deep = FALSE)
deep
Whether to make a deep clone.
## ------------------------------------------------ ## Method `Plan$add_data` ## ------------------------------------------------ p <- plnr::Plan$new() data_fn <- function(){return(plnr::nor_covid19_cases_by_time_location)} p$add_data("data_1", fn = data_fn) p$add_data("data_2", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_data("data_3", direct = plnr::nor_covid19_cases_by_time_location) p$get_data() ## ------------------------------------------------ ## Method `Plan$add_argset` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_argset("argset_1", var_1 = 3, var_b = "hello") p$add_argset("argset_2", var_1 = 8, var_c = "hello2") p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_argset_from_df` ## ------------------------------------------------ p <- plnr::Plan$new() batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_argset_from_df(batch_argset_df) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_argset_from_list` ## ------------------------------------------------ p <- plnr::Plan$new() batch_argset_list <- list( list(name = "a", var_1 = 1, var_2 = "i"), list(name = "b", var_1 = 2, var_2 = "j"), list(name = "c", var_1 = 3, var_2 = "k") ) p$add_argset_from_list(batch_argset_list) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_analysis` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_analysis( name = "analysis_1", fn_name = "plnr::example_action_fn" ) p$get_argsets_as_dt() p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$add_analysis_from_df` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_analysis_from_df( fn_name = "plnr::example_action_fn", df = batch_argset_df ) p$get_argsets_as_dt() p$run_one(1) ## ------------------------------------------------ ## Method `Plan$add_analysis_from_list` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$get_data() ## ------------------------------------------------ ## Method `Plan$get_analysis` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_analysis("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_argset` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argset("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_argsets_as_dt` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$run_one_with_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_one_with_data("analysis_1", data) ## ------------------------------------------------ ## Method `Plan$run_one` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$run_all_with_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_all_with_data(data) ## ------------------------------------------------ ## Method `Plan$run_all` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all() ## ------------------------------------------------ ## Method `Plan$run_all_progress` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all_progress()
## ------------------------------------------------ ## Method `Plan$add_data` ## ------------------------------------------------ p <- plnr::Plan$new() data_fn <- function(){return(plnr::nor_covid19_cases_by_time_location)} p$add_data("data_1", fn = data_fn) p$add_data("data_2", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_data("data_3", direct = plnr::nor_covid19_cases_by_time_location) p$get_data() ## ------------------------------------------------ ## Method `Plan$add_argset` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_argset("argset_1", var_1 = 3, var_b = "hello") p$add_argset("argset_2", var_1 = 8, var_c = "hello2") p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_argset_from_df` ## ------------------------------------------------ p <- plnr::Plan$new() batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_argset_from_df(batch_argset_df) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_argset_from_list` ## ------------------------------------------------ p <- plnr::Plan$new() batch_argset_list <- list( list(name = "a", var_1 = 1, var_2 = "i"), list(name = "b", var_1 = 2, var_2 = "j"), list(name = "c", var_1 = 3, var_2 = "k") ) p$add_argset_from_list(batch_argset_list) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$add_analysis` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$add_analysis( name = "analysis_1", fn_name = "plnr::example_action_fn" ) p$get_argsets_as_dt() p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$add_analysis_from_df` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_df <- data.frame(name = c("a", "b", "c"), var_1 = c(1, 2, 3), var_2 = c("i", "j", "k")) p$add_analysis_from_df( fn_name = "plnr::example_action_fn", df = batch_argset_df ) p$get_argsets_as_dt() p$run_one(1) ## ------------------------------------------------ ## Method `Plan$add_analysis_from_list` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") p$get_data() ## ------------------------------------------------ ## Method `Plan$get_analysis` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_analysis("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_argset` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argset("analysis_1") ## ------------------------------------------------ ## Method `Plan$get_argsets_as_dt` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$get_argsets_as_dt() ## ------------------------------------------------ ## Method `Plan$run_one_with_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_one_with_data("analysis_1", data) ## ------------------------------------------------ ## Method `Plan$run_one` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_one("analysis_1") ## ------------------------------------------------ ## Method `Plan$run_all_with_data` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) data <- p$get_data() p$run_all_with_data(data) ## ------------------------------------------------ ## Method `Plan$run_all` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all() ## ------------------------------------------------ ## Method `Plan$run_all_progress` ## ------------------------------------------------ p <- plnr::Plan$new() p$add_data("covid_data", fn_name = "plnr::example_data_fn_nor_covid19_cases_by_time_location") batch_argset_list <- list( list(name = "analysis_1", var_1 = 1, var_2 = "i"), list(name = "analysis_2", var_1 = 2, var_2 = "j"), list(name = "analysis_3", var_1 = 3, var_2 = "k") ) p$add_analysis_from_list( fn_name = "plnr::example_action_fn", l = batch_argset_list ) p$run_all_progress()
set_opts
set_opts(force_verbose = FALSE)
set_opts(force_verbose = FALSE)
force_verbose |
Force verbose |
A test action_fn for an analysis that returns the value 1
test_action_fn(data, argset)
test_action_fn(data, argset)
data |
Data |
argset |
argset |
Adapted from function try_again from package testthat.
try_again( x, times = 2, delay_seconds_min = 5, delay_seconds_max = 10, verbose = FALSE )
try_again( x, times = 2, delay_seconds_min = 5, delay_seconds_max = 10, verbose = FALSE )
x |
code |
times |
Number of times to try |
delay_seconds_min |
Number of seconds to delay on failure |
delay_seconds_max |
Number of seconds to delay on failure |
verbose |
Boolean. Do you want information? |