Com emprar "renv" i no morir en l'intent | |
Trobada analistes de dades de la Gencat a l'ACA (C/ Provença 260, BCN). Dll. 16/01/2023, 15:30-17:00h. Dr. Xavier de Pedro Puente - Ecòleg, TS TIC a l'IMI, AjBCN - xavier.depedro@seeds4c.org
Trobada analistes de dades
La idea és desvirtualitzar-nos, conèixer-nos, compartir informació... i després qui vulgui ens podem allargar i anar a prendre quelcom.
PROGRAMA
|
Taula de continguts de la mini-xerrada | |
1. Control de versions amb "entorns" de treball | |
|
2. Entorns virtuals en R amb renv | |
|
3. De utils: : sessionInfo() al renv: : snapshot() + renv.lock | |
utils::sessionInfo()
x > sessionInfo() R version 4.1.2 (2021-11-01) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 22.04.1 LTS Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0 LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0 locale: [1] LC_CTYPE=ca_ES.UTF-8 LC_NUMERIC=C LC_TIME=ca_ES.UTF-8 [4] LC_COLLATE=ca_ES.UTF-8 LC_MONETARY=ca_ES.UTF-8 LC_MESSAGES=ca_ES.UTF-8 [7] LC_PAPER=ca_ES.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=ca_ES.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices datasets utils methods base other attached packages: [1] kableExtra_1.3.4 fs_1.5.2 tictoc_1.1 lubridate_1.9.0 timechange_0.1.1 [6] janitor_2.1.0 knitr_1.40 markdown_1.3 RODBC_1.3-19 fst_0.9.8 [11] forcats_0.5.2 stringr_1.4.1 dplyr_1.0.10 purrr_0.3.5 readr_2.1.3 [16] tidyr_1.2.1 tibble_3.1.8 ggplot2_3.4.0 tidyverse_1.3.1 loaded via a namespace (and not attached): [1] httr_1.4.4 jsonlite_1.8.3 viridisLite_0.4.1 modelr_0.1.10 assertthat_0.2.1 [6] renv_0.16.0 cellranger_1.1.0 yaml_2.3.6 pillar_1.8.1 backports_1.4.1 [11] glue_1.6.2 digest_0.6.30 rvest_1.0.3 snakecase_0.11.0 colorspace_2.0-3 [16] htmltools_0.5.3 pkgconfig_2.0.3 broom_1.0.1 haven_2.5.1 scales_1.2.1 [21] webshot_0.5.4 svglite_2.1.0 openxlsx_4.2.5.1 rio_0.5.29 tzdb_0.3.0 [26] generics_0.1.3 ellipsis_0.3.2 withr_2.5.0 cli_3.4.1 magrittr_2.0.3 [31] crayon_1.5.2 readxl_1.4.1 evaluate_0.18 fansi_1.0.3 xml2_1.3.3 [36] foreign_0.8-82 tools_4.1.2 data.table_1.14.4 hms_1.1.2 lifecycle_1.0.3 [41] munsell_0.5.0 reprex_2.0.2 zip_2.2.2 compiler_4.1.2 systemfonts_1.0.4 [46] rlang_1.0.6 grid_4.1.2 fstcore_0.9.12 rstudioapi_0.14 rmarkdown_2.18 [51] gtable_0.3.1 DBI_1.1.3 curl_4.3.3 R6_2.5.1 fastmap_1.1.0 [56] utf8_1.2.2 stringi_1.7.8 parallel_4.1.2 Rcpp_1.0.9 vctrs_0.5.0 [61] dbplyr_2.2.1 tidyselect_1.2.0 xfun_0.34 > renv::snapshot() i ./renv.lock
xxxxxxxxxx { "R": { "Version": "4.1.2", "Repositories": [ { "Name": "CRAN", "URL": "https://cloud.r-project.org" } ] }, "Packages": { "DBI": { "Package": "DBI", "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", "Hash": "b2866e62bab9378c3cc9476a1954226b", "Requirements": [] }, "tinytex": { "Package": "tinytex", "Version": "0.42", "Source": "Repository", "Repository": "CRAN", "Hash": "7629c6c1540835d5248e6e7df265fa74", "Requirements": [ "xfun" ] }, "tzdb": { "Package": "tzdb", "Version": "0.3.0", "Source": "Repository", "Repository": "CRAN", "Hash": "b2e1cbce7c903eaf23ec05c58e59fb5e", "Requirements": [ "cpp11" ] }, "zip": { "Package": "zip", "Version": "2.2.2", "Source": "Repository", "Repository": "CRAN", "Hash": "c42bfcec3fa6a0cce17ce1f8bc684f88", "Requirements": [] } } }
|
4. "Happy path" | |
Per a feina reproduïble Comandes en terminal - Màquina 1
xxxxxxxxxx 9 1 cd carpeta_de_projecte 2 git init 3 R 4 [obrir projecte de RStudio] 5 renv::init() # per inicialitzar renv al projecte de codi 6 renv::snapshot() # per fer foto instantània de llista de paquets d'R emprats a tot el projecte i les seves versions respectives 7 q() 8 git commit ... 9 git push Comandes en terminal - Màquina 2
xxxxxxxxxx 11 1 cd carpeta_de_projecte 2 git clone/git pull ... 3 R 4 [obrir mateix projecte de RStudio] 5 renv::status() # per a informe de quins passos proposa fer 6 renv::restore() # per restaurar biblioteca de paquets (i versions) del projecte 7 [continuar treballant en el codi] 8 renv::snapshot() # per fer nova foto instantània (si hi ha nous paquets /io versions de paquets d'R més noves o més velles ;-) ) 9 q() 10 git commit ... 11 git push
|
5. Infraestructura | ||||||||||||||||||||
Els projectes amb
|
6. Us avançat | |
xxxxxxxxxx 7 1 renv::install("paquet", version="0.1") # per instal.lar versions antigues d'un paquet (útil també per a paquets descontinuats a CRAN!). Veure números de versió possibles a https://cran.r-project.org/src/contrib/Archive/paquet/ 2 renv::record("paquet", version="0.1") # per desar a renv.lock la versió concreta 3 renv::deactivate() # per desactivar temporalment renv en el projecte 4 renv::activate() # per reactiar renv al projecte 5 renv::equip() # per a instal.lacions especials en windows 6 vignette("docker", package = "renv") # per a ús combinat amb docker 7 vignette("collaborating", package = "renv") # per millorar us col.laboratiu en equips
|
7. Gràcies | |
Dr. Xavier de Pedro Puente
|