class: center, middle, inverse, title-slide # Introduction to targets ## and the targets-iSSA workflow ### Alec L. Robitaille ### Wildlife Evolutionary Ecology Lab
Memorial University ### 2022-04-12 --- .left-column[ <br><br><br><br><br><br> ### **Context** ### Workflow ### Ingredients ### Tools ### Extras ### Resources ] --- .left-column[ <br><br><br><br><br><br> ### **Context** ### Workflow ### Ingredients ### Tools ### Extras ### Resources ] #### Introducing targets and the targets-issa workflow <br> [ robitalec/targets-iSSA](https://github.com/robitalec/targets-issa) [ How-To iSSA](https://issa-guild.github.io/book) .footnote[ [Setup (targets-iSSA)](https://issa-guild.github.io/book/setup.html) ] --- .left-column[ <br><br><br><br><br><br> ### Context ### **Workflow** ### Ingredients ### Tools ### Extras ### Resources ] #### What's in a workflow? -- Data -- Variables -- Prepare data -- Analyse data (extract, steps, turn angles) -- Model -- Plots, predictions, ... --- .left-column[ <br><br><br><br><br><br> ### Context ### **Workflow** ### Ingredients ### Tools ### Extras ### Resources ] #### The targets-iSSA workflow .center[ ![:scale 47%](images/viz.png) ] --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### **Ingredients** ### Tools ### Extras ### Resources ] #### Why targets? Reproducible Digestible Time savings Evidence --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### **Ingredients** ### Tools ### Extras ### Resources ] #### Ingredients Functions Targets Packages --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### **Ingredients** ### Tools ### Extras ### Resources ] #### Ingredients: Functions .panelset[ .panel[.panel-name[Script] ```r library(ggplot2) library(data.table) DT <- data.table(mtcars) DT_gear_4 <- DT[gear == 4] DT_gear_5 <- DT[gear == 5] ggplot(DT_gear_4) + geom_point(aes(mpg, cyl)) + theme(base_size) ggplot(DT_gear_4) + geom_point(aes(mpg, cyl)) + theme(base_size) ``` ] .panel[.panel-name[Function] ```r plot_mpg_cyl <- function(DT) { ggplot(DT) + geom_point(aes(mpg, cyl)) + theme(base_size) } ``` ```r plot_mpg_cyl(DT_gear_4) plot_mpg_cyl(DT_gear_5) ``` ] ] .footnote[ [Targets manual: Functions](https://books.ropensci.org/targets/functions.html) ] --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### **Ingredients** ### Tools ### Extras ### Resources ] #### Ingredients: Targets ```r tar_target( name, command ) ``` ```r tar_target( plot_cars, plot_mpg_cyl(mtcars) ) ``` .small[ Other arguments: -`pattern = map(branch)` -`format = 'file'` -`cue = tar_cue('always')` ] --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### **Ingredients** ### Tools ### Extras ### Resources ] #### Ingredients: Packages `R/packages.R` ```r library(targets) library(renv) library(data.table) library(parsedate) library(ggplot2) library(amt) library(sf) library(raster) library(distanceto) library(glmmTMB) ``` --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### Ingredients ### **Tools** ### Extras ### Resources ] #### Tools: make `tar_make()` .footnote[ Shortcuts! Background jobs! `Rscript`! ] --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### Ingredients ### **Tools** ### Extras ### Resources ] #### Tools: read/load `tar_read()` `tar_load()` --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### Ingredients ### Tools ### **Extras** ### Resources ] #### Extras: renv Pair `targets` for reproducible workflows with `renv` for package management --- .left-column[ <br><br><br><br><br><br> ### Context ### Workflow ### Ingredients ### Tools ### Extras ### **Resources** ] #### Resources targets: [ User Manual](https://books.ropensci.org/targets/) [ Documentation](https://docs.ropensci.org/targets/) renv: [ Documentation](https://rstudio.github.io/renv/)