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 at seeds4c.org
La idea és desvirtualitzar-nos, conèixer-nos, compartir informació... i després qui vulgui ens podem allargar i anar a prendre quelcom.
Accés obert a partir de les 15h15. Entrant per la porta del carrer (Provença 260), just la primera sala a l’esquerra.
PROGRAMA
- 5’ Benvinguda
- 20’ presentacions d’ús R general
- 10’ Presentació dades
- 30’ 6 presentacions de casos pràctics
- 10’ tRivial
- 10’ conclusió i torn obert
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
> 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 >
{ "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
cd carpeta_de_projecte git init R [obrir projecte de RStudio] renv::init() # per inicialitzar renv al projecte de codi renv::snapshot() # per fer foto instantània de llista de paquets d'R emprats a tot el projecte i les seves versions respectives q() git commit ... git push
cd carpeta_de_projecte git clone/git pull ... R [obrir mateix projecte de RStudio] renv::status() # per a informe de quins passos proposa fer renv::restore() # per restaurar biblioteca de paquets (i versions) del projecte [continuar treballant en el codi] 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 ;-) ) q() git commit ... git push
5. Infraestructura
Els projectes amb renv
escriuen i empren aquests arxius per funcionar:
Arxiu | Ús |
.Rprofile | Emprat per activar renv per a noves sessions iniciades en el projecte (des de fora de RStudio també).
|
renv.lock | L'arxiu lockfile, que descriu l'estat de la biblioteca de paquets del teu projecteen un moment del temps. |
renv/activate.R | L'script d'activació executat per l'arxiu .Rprofile del projecte.
|
renv/library | La biblioteca privada de paquets del projecte. |
renv/settings.dcf | Configuració del projecte – veure ?settings per més detalls.
|
Per omissió, renv
empra memòria cau de paquets aquí:
Platform | Location |
Linux | ~/.local/share/renv
|
macOS | ~/Library/Application Support/renv
|
Windows | %LOCALAPPDATA%/renv
|
6. Us avançat
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/ renv::record("paquet", version="0.1") # per desar a renv.lock la versió concreta renv::deactivate() # per desactivar temporalment renv en el projecte renv::activate() # per reactiar renv al projecte renv::equip() # per a instal.lacions especials en windows vignette("docker", package = "renv") # per a ús combinat amb docker vignette("collaborating", package = "renv") # per millorar us col.laboratiu en equips
I moltes més. Veure:
https://rstudio.github.io/renv/articles/renv.html
7. Gràcies
Dr. Xavier de Pedro Puente
Aquestes diapositives són disponibles a:
https://seeds4c.org/renv
Unless elsewhere noted, contents of this web site are released under a Creative Commons license.