Loading...
 

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
Start Slideshow Presentation

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.
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



1. Control de versions amb "entorns" de treball


Image

2. Entorns virtuals en R amb renv

Image

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 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

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



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

Image







Image
Unless elsewhere noted, contents of this web site are released under a Creative Commons license.


Image Seed: noun \ˈsēd\ : the beginning of something which continues to develop or grow

Knowledge seeds

Switch Language