MilesMcBain / tflow

An opinionated lightweight template for smooth targets flows.
Other
90 stars 9 forks source link

changes to use_rmd() template so works when knitting or tar_make()ing #5

Open Aariq opened 3 years ago

Aariq commented 3 years ago

The current template includes source("../packages.R"), which works for me when I run the code chunk or use the knit button, but causes an error with tar_make():

● run target y
Quitting from lines 9-12 (test.Rmd) 
x error target y
Error : cannot open the connection
Error: callr subprocess failed: cannot open the connection

Changing it to source(here::here("packages.R")) makes it work in all three places.

Similarly, it took me a long time to figure out how to use tar_load() and tar_read() in a way that would work when running code chunks, knitting, and using tar_make(). This is the solution I came up with, which might be a nice addition to the template:

withr::with_dir(here(),{
  #add calls to tar_load() here
  tar_load(x)
  tar_load(y)
  })

There are other workarounds for getting tar_load() to work in R Markdown here, but none of the other suggestions worked for me.

Session info ``` r devtools::session_info() ─ Session info ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── setting value version R version 4.0.2 (2020-06-22) os macOS Catalina 10.15.7 system x86_64, darwin17.0 ui RStudio language (EN) collate en_US.UTF-8 ctype en_US.UTF-8 tz America/New_York date 2021-03-10 ─ Packages ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ! package * version date lib source P anytime 0.3.9 2020-08-27 [?] CRAN (R 4.0.2) P askpass 1.1 2019-01-13 [?] CRAN (R 4.0.0) P assertthat 0.2.1 2019-03-21 [?] CRAN (R 4.0.0) P backports 1.2.1 2020-12-09 [?] CRAN (R 4.0.2) P bbmle * 1.0.23.1 2020-02-03 [?] CRAN (R 4.0.0) P bdsmatrix 1.3-4 2020-01-13 [?] CRAN (R 4.0.0) P broom * 0.7.3 2020-12-16 [?] CRAN (R 4.0.2) callr 3.5.1 2020-10-13 [1] CRAN (R 4.0.2) P cellranger 1.1.0 2016-07-27 [?] CRAN (R 4.0.0) P cli 2.2.0 2020-11-20 [?] CRAN (R 4.0.2) P clipr 0.7.1 2020-10-08 [?] CRAN (R 4.0.2) P codetools 0.2-18 2020-11-04 [?] CRAN (R 4.0.2) P colorspace 2.0-0 2020-11-11 [?] CRAN (R 4.0.2) P conflicted * 1.0.4 2019-06-21 [?] CRAN (R 4.0.0) crayon 1.4.1 2021-02-08 [1] CRAN (R 4.0.2) P credentials 1.3.0 2020-07-21 [?] CRAN (R 4.0.2) P data.table 1.13.6 2020-12-30 [?] CRAN (R 4.0.2) P DBI 1.1.0 2019-12-15 [?] CRAN (R 4.0.0) P dbplyr 2.0.0 2020-11-03 [?] CRAN (R 4.0.2) P desc 1.2.0 2018-05-01 [?] CRAN (R 4.0.0) P devtools 2.3.2 2020-09-18 [?] CRAN (R 4.0.2) digest 0.6.27 2020-10-24 [1] CRAN (R 4.0.2) P dlnm * 2.4.2 2020-05-22 [?] CRAN (R 4.0.2) P dotenv * 1.0.2 2017-03-01 [?] CRAN (R 4.0.2) P dplyr * 1.0.2 2020-08-18 [?] CRAN (R 4.0.2) P ellipsis 0.3.1 2020-05-15 [?] CRAN (R 4.0.0) P evaluate 0.14 2019-05-28 [?] CRAN (R 4.0.0) P fansi 0.4.1 2020-01-08 [?] CRAN (R 4.0.0) P fastmap 1.0.1 2019-10-08 [?] CRAN (R 4.0.0) P forcats * 0.5.0 2020-03-01 [?] CRAN (R 4.0.0) P fs 1.5.0 2020-07-31 [?] CRAN (R 4.0.2) P generics 0.1.0 2020-10-31 [?] CRAN (R 4.0.2) P gert 1.0.2 2020-11-12 [?] CRAN (R 4.0.2) P ggplot2 * 3.3.3 2020-12-30 [?] CRAN (R 4.0.2) P git2r 0.27.1 2020-05-03 [?] CRAN (R 4.0.2) P glue * 1.4.2 2020-08-27 [?] CRAN (R 4.0.2) P goftest 1.2-2 2019-12-02 [?] CRAN (R 4.0.2) P gratia * 0.5.1.9002 2021-02-17 [?] Github (gavinsimpson/gratia@32daf2f) P gtable 0.3.0 2019-03-25 [?] CRAN (R 4.0.0) P haven 2.3.1 2020-06-01 [?] CRAN (R 4.0.0) P here * 1.0.1 2020-12-13 [?] CRAN (R 4.0.2) P hms 0.5.3 2020-01-08 [?] CRAN (R 4.0.0) P htmltools 0.5.0 2020-06-16 [?] CRAN (R 4.0.0) P htmlwidgets 1.5.3 2020-12-10 [?] CRAN (R 4.0.2) P httpuv 1.5.4 2020-06-06 [?] CRAN (R 4.0.0) P httr 1.4.2 2020-07-20 [?] CRAN (R 4.0.0) P igraph 1.2.6 2020-10-06 [?] CRAN (R 4.0.2) P janitor * 2.1.0 2021-01-05 [?] CRAN (R 4.0.2) P jsonlite 1.7.2 2020-12-09 [?] CRAN (R 4.0.2) P knitr 1.30 2020-09-22 [?] CRAN (R 4.0.2) P later 1.1.0.1 2020-06-05 [?] CRAN (R 4.0.0) P latex2exp * 0.4.0 2015-11-30 [?] CRAN (R 4.0.0) P lattice 0.20-41 2020-04-02 [?] CRAN (R 4.0.2) P lifecycle 0.2.0 2020-03-06 [?] CRAN (R 4.0.0) P lmomco * 2.3.6 2020-03-14 [?] CRAN (R 4.0.2) P Lmoments 1.3-1 2019-03-15 [?] CRAN (R 4.0.2) P lubridate * 1.7.9.2 2020-11-13 [?] CRAN (R 4.0.2) P magrittr 2.0.1 2020-11-17 [?] CRAN (R 4.0.2) P MASS 7.3-53 2020-09-09 [?] CRAN (R 4.0.2) P Matrix 1.3-2 2021-01-06 [?] CRAN (R 4.0.2) P matrixcalc 1.0-3 2012-09-15 [?] CRAN (R 4.0.2) P memoise 1.1.0 2017-04-21 [?] CRAN (R 4.0.0) P mgcv * 1.8-33 2020-08-27 [?] CRAN (R 4.0.2) P mime 0.9 2020-02-04 [?] CRAN (R 4.0.0) P miniUI 0.1.1.1 2018-05-18 [?] CRAN (R 4.0.0) P modelr 0.1.8 2020-05-19 [?] CRAN (R 4.0.0) P munsell 0.5.0 2018-06-12 [?] CRAN (R 4.0.0) P mvnfast 0.2.5.1 2020-10-14 [?] CRAN (R 4.0.2) P mvtnorm 1.1-1 2020-06-09 [?] CRAN (R 4.0.0) P nlme * 3.1-151 2020-12-10 [?] CRAN (R 4.0.2) P numDeriv 2016.8-1.1 2019-06-06 [?] CRAN (R 4.0.0) P openssl 1.4.3 2020-09-18 [?] CRAN (R 4.0.2) P patchwork * 1.1.1 2020-12-17 [?] CRAN (R 4.0.2) P pillar 1.4.7 2020-11-20 [?] CRAN (R 4.0.2) P pkgbuild 1.2.0 2020-12-15 [?] CRAN (R 4.0.2) P pkgconfig 2.0.3 2019-09-22 [?] CRAN (R 4.0.0) P pkgload 1.1.0 2020-05-29 [?] CRAN (R 4.0.0) P prettyunits 1.1.1 2020-01-24 [?] CRAN (R 4.0.0) P processx 3.4.5 2020-11-30 [?] CRAN (R 4.0.2) P promises 1.1.1 2020-06-09 [?] CRAN (R 4.0.0) P ps 1.5.0 2020-12-05 [?] CRAN (R 4.0.2) P purrr * 0.3.4 2020-04-17 [?] CRAN (R 4.0.0) R6 2.5.0 2020-10-28 [1] CRAN (R 4.0.2) P Rcpp 1.0.5 2020-07-06 [?] CRAN (R 4.0.0) P readr * 1.4.0 2020-10-05 [?] CRAN (R 4.0.2) P readxl 1.3.1 2019-03-13 [?] CRAN (R 4.0.0) P remotes 2.2.0 2020-07-21 [?] CRAN (R 4.0.2) P renv * 0.12.3 2020-11-25 [?] CRAN (R 4.0.2) P reprex 0.3.0 2019-05-16 [?] CRAN (R 4.0.0) P rlang 0.4.10 2020-12-30 [?] CRAN (R 4.0.2) P rmarkdown * 2.6 2020-12-14 [?] CRAN (R 4.0.2) P rprojroot 2.0.2 2020-11-15 [?] CRAN (R 4.0.2) P rstudioapi 0.13 2020-11-12 [?] CRAN (R 4.0.2) P rvest 0.3.6 2020-07-25 [?] CRAN (R 4.0.2) P scales 1.1.1 2020-05-11 [?] CRAN (R 4.0.0) P sessioninfo 1.1.1 2018-11-05 [?] CRAN (R 4.0.2) P shiny * 1.5.0 2020-06-23 [?] CRAN (R 4.0.0) P snakecase 0.11.0 2019-05-25 [?] CRAN (R 4.0.0) P SPEI * 1.7 2017-06-07 [?] CRAN (R 4.0.2) statmod * 1.4.35 2020-10-19 [1] CRAN (R 4.0.2) P stringi 1.5.3 2020-09-09 [?] CRAN (R 4.0.2) P stringr * 1.4.0 2019-02-10 [?] CRAN (R 4.0.0) P sys 3.4 2020-07-23 [?] CRAN (R 4.0.2) P tarchetypes * 0.1.0 2021-02-27 [?] CRAN (R 4.0.2) P targets * 0.2.0 2021-02-27 [?] CRAN (R 4.0.2) P testthat 3.0.1 2020-12-17 [?] CRAN (R 4.0.2) P tflow * 0.0.0.9000 2021-03-09 [?] Github (milesmcbain/tflow@9b7c7db) tibble * 3.0.4 2020-10-12 [1] CRAN (R 4.0.2) P tidyr * 1.1.2 2020-08-27 [?] CRAN (R 4.0.2) P tidyselect 1.1.0 2020-05-11 [?] CRAN (R 4.0.0) P tidyverse * 1.3.0 2019-11-21 [?] CRAN (R 4.0.0) P tsibble * 0.9.3 2020-10-06 [?] CRAN (R 4.0.2) P tsModel * 0.6 2013-06-24 [?] CRAN (R 4.0.0) P usethis 2.0.0 2020-12-10 [?] CRAN (R 4.0.2) P utf8 1.1.4 2018-05-24 [?] CRAN (R 4.0.0) P vctrs 0.3.6 2020-12-17 [?] CRAN (R 4.0.2) P visNetwork 2.0.9 2019-12-06 [?] CRAN (R 4.0.2) P whisker 0.4 2019-08-28 [?] CRAN (R 4.0.0) withr 2.3.0 2020-09-22 [1] CRAN (R 4.0.2) P xfun 0.20 2021-01-06 [?] CRAN (R 4.0.2) P xml2 1.3.2 2020-04-23 [?] CRAN (R 4.0.0) P xtable 1.8-4 2019-04-21 [?] CRAN (R 4.0.0) P yaml 2.2.1 2020-02-01 [?] CRAN (R 4.0.0) [1] /Users/scottericr/Documents/HeliconiaDemography/renv/library/R-4.0/x86_64-apple-darwin17.0 [2] /private/var/folders/b_/2vfnxxls5vs401tmhhb3wqdh0000gp/T/RtmpSHmFRL/renv-system-library P ── Loaded and on-disk path mismatch. ```
matthewhillary commented 3 years ago

Both of those solutions work for me thanks!

MilesMcBain commented 3 years ago

Linking a comment from this PR: https://github.com/MilesMcBain/tflow/pull/7#issuecomment-840143973 to flag that knitting or rendering Rmd reports with cached targets outside of the {targets} pipeline has some risks that need to be weighed.

My personal view is it's best avoided.