diff --git a/01_R_Insee/Fiche-personnaliser-R.qmd b/01_R_Insee/Fiche-personnaliser-R.qmd index 052d390c..81f00d11 100644 --- a/01_R_Insee/Fiche-personnaliser-R.qmd +++ b/01_R_Insee/Fiche-personnaliser-R.qmd @@ -188,7 +188,7 @@ Les autres opérations modifiant le comportement de base (comme `options(strings L'immense majorité de la documentation sur l'utilisation des fichiers de configuration de `R` est en langue anglaise : -* [Using `.Rprofile` and .`Renviron`](https://github.com/numbats/resources/blob/b2fdc170277ecebea9a6358d7d222b55a206d70e/rprofile-renviron.Rmd) par Nicholas Tierney ; +* [Using `.Rprofile` and `.Renviron`](https://github.com/numbats/resources/blob/b2fdc170277ecebea9a6358d7d222b55a206d70e/rprofile-renviron.Rmd) par Nicholas Tierney ; * [R Startup](https://rstats.wtf/r-startup.html), chapitre 7 de _Rstats - What they forgot to teach you_, par Jennifer Bryan er Jim Hester ; * [Managing `R` with `.Rprofile`, `.Renviron`, `Rprofile.site`, `Renviron.site`, `rsession.conf`, and `repos.conf`](https://support.rstudio.com/hc/en-us/articles/360047157094-Managing-R-with-Rprofile-Renviron-Rprofile-site-Renviron-site-rsession-conf-and-repos-conf) par Alex Gold ; * [Efficient `R` Programing - chapter 2.5](https://csgillespie.github.io/efficientR/set-up.html#r-startup) par Colin Gillespie \& Robin Lovelace ; diff --git a/01_R_Insee/Fiche_utiliser_Rstudio_AUSv3.qmd b/01_R_Insee/Fiche_utiliser_Rstudio_AUSv3.qmd index 44065bbd..fa08a050 100644 --- a/01_R_Insee/Fiche_utiliser_Rstudio_AUSv3.qmd +++ b/01_R_Insee/Fiche_utiliser_Rstudio_AUSv3.qmd @@ -112,6 +112,6 @@ Lorsque vous créez un projet RStudio en clonant un dépôt distant, il est néc ## Pour en savoir plus -- La foire aux questions d'AUSv3 est disponible sur Agora : [agora.insee.fr], puis cliquer sur `Services > DSI > Libre Service statistique > AUS V3` ; +- La foire aux questions d'AUSv3 est disponible sur Symphonie : [intranet.insee.fr], puis cliquer sur `Services > DSI > Libre Service statistique > AUS V3` ; - La documentation d'AUSv3 est disponible dans le dossier `Y:/Documentation/AUSv3` ; -- le guide de l'utilisateur d'AUSv3 disponible sur l'[intranet](https://www.agora.insee.fr/cms/sites/sgi/home/libre-service-statistique/aus-v3/reunions-dinformation-aus-v3.html). +- le [guide de l'utilisateur d'AUSv3](https://datascience.gitlab-pages.insee.fr/site-documentaire/ausv3/presentation-generale) disponible sur l'[intranet](https://intranet.insee.fr/jcms/c_2049931/fr/les-plateformes#c_2071800_content_toc_1). diff --git a/02_Bonnes_pratiques/01-qualite-code.qmd b/02_Bonnes_pratiques/01-qualite-code.qmd index b3b87d46..198ca5ff 100644 --- a/02_Bonnes_pratiques/01-qualite-code.qmd +++ b/02_Bonnes_pratiques/01-qualite-code.qmd @@ -295,7 +295,7 @@ Le _package_ `conflicted` aide à gérer les conflits de _packages_ de manière - [_R Packages_](https://r-pkgs.org/man.html) par Hadley Wickham and Jenny Bryan - Une [présentation très bien faite](https://mitmat.github.io/slides/2022-05-26-egu/code-data-open-science.html#1) - [Un cours complet](https://eliocamp.github.io/reproducibility-with-r/) sur la reproductibilité avec `R` -- L'équivalent `Python` en [3A d'ENSAE](https://ensae-reproductibilite.netlify.app/about/) +- L'équivalent `Python` en [3A d'ENSAE](https://ensae-reproductibilite.github.io/website/) ## Exercices diff --git a/02_Bonnes_pratiques/06-outils.qmd b/02_Bonnes_pratiques/06-outils.qmd index 01eb492e..68b9eacd 100644 --- a/02_Bonnes_pratiques/06-outils.qmd +++ b/02_Bonnes_pratiques/06-outils.qmd @@ -76,7 +76,7 @@ style_file(path = "inst/app/ui.R") #> Please review the changes carefully! ``` -Le fichier a été modifié et grâce à [`Git`](https://book.utilitr.org/git.html) on peut facilement parcourir tous les changements de style effectués par le package. Par exemple : +Le fichier a été modifié et grâce à [`Git`](https://book.utilitr.org/03_Fiches_thematiques/Fiche_git_utilisation) on peut facilement parcourir tous les changements de style effectués par le package. Par exemple : ![Conséquence de `styler`](./pics/bonnespratiques/img_styler.png){width=100%} Enfin le package `styler`permet de définir votre propre guide de style et de formater du code en fonction de celui-ci. Pour en savoir plus, consultez [cette vignette](https://styler.r-lib.org/articles/customizing_styler.html) diff --git a/03_Fiches_thematiques/Fiche_connexion_bdd.qmd b/03_Fiches_thematiques/Fiche_connexion_bdd.qmd index 0865e32f..0f4a1cf1 100644 --- a/03_Fiches_thematiques/Fiche_connexion_bdd.qmd +++ b/03_Fiches_thematiques/Fiche_connexion_bdd.qmd @@ -267,16 +267,16 @@ Il est fréquent que les bases de données contiennent des données volumineuses ## Sources -Cette fiche reprend partiellement ce [tutoriel RStudio](https://db.rstudio.com/databases) (en anglais). +Cette fiche reprend partiellement ce [tutoriel Posit](https://solutions.posit.co/connections/db/) (en anglais). ## Pour en savoir plus {#RessourcesBDD} -* la documentation de RStudio sur la connexion aux bases de données (en anglais) : - * une [introduction aux bases de données](https://db.rstudio.com/databases) ; - * une [introduction à `DBI`](https://db.rstudio.com/dbi/) (en anglais) ; - * la [documentation associée à Postgres](https://db.rstudio.com/databases/postgresql/) ; +* la documentation de Posit sur la connexion aux bases de données (en anglais) : + * une [introduction aux bases de données](https://solutions.posit.co/connections/db/) ; + * une [introduction à `DBI`](https://solutions.posit.co/connections/db/r-packages/dbi/) (en anglais) ; + * la [documentation associée à Postgres](https://solutions.posit.co/connections/db/databases/postgresql/) ; * la [documentation du *package* `DBI`](https://cran.r-project.org/web/packages/DBI/DBI.pdf) (en anglais) ; -* le [site de RStudio](https://db.rstudio.com/dbi/) sur `DBI` ; -* la [documentation du *package* `RPostgres`](hhttps://cran.r-project.org/web/packages/RPostgres/RPostgres.pdf) (en anglais) ; +* le [site de Posit](https://solutions.posit.co/connections/db/r-packages/dbi/) sur `DBI` ; +* la [documentation du *package* `RPostgres`](https://cran.r-project.org/web/packages/RPostgres/RPostgres.pdf) (en anglais) ; * la [documentation au sujet du *package* `dbplyr`](https://dbplyr.tidyverse.org/). diff --git a/03_Fiches_thematiques/Fiche_datatable.qmd b/03_Fiches_thematiques/Fiche_datatable.qmd index 8e52ddd7..e548383c 100644 --- a/03_Fiches_thematiques/Fiche_datatable.qmd +++ b/03_Fiches_thematiques/Fiche_datatable.qmd @@ -745,8 +745,8 @@ Lorsqu'on définit des fonctions pour effectuer des traitements génériques, un - [Introduction à `data.table`](https://cloud.r-project.org/web/packages/data.table/vignettes/datatable-intro.html) (en anglais) ; - [Modification par référence](https://cloud.r-project.org/web/packages/data.table/vignettes/datatable-reference-semantics.html) (en anglais) ; - [la foire aux questions de `data.table`](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-faq.html) (en anglais) ; -- une [_cheatsheet_](https://github.com/rstudio/cheatsheets/raw/master/datatable.pdf) sur `data.table` (en anglais) ; +- une [_cheatsheet_](https://raw.githubusercontent.com/rstudio/cheatsheets/master/datatable.pdf) sur `data.table` (en anglais) ; - une [introduction à l'utilisation de l'opérateur `[...]`](https://stt4230.rbind.io/tutoriels_etudiants/hiver_2017/data.table) (en français) ; - Ce [cours complet sur `data.table`](https://gitlab.com/linogaliana/bigr/-/blob/master/04-datatable.Rmd) (en français). - Cette [présentation des fonctionnalités du package](https://dreamrs.github.io/talks/20180528_RAddicts_datatable.pdf) (en français) ; -- Ce [post sur les fonctions utilisant data.table](https://linogaliana.netlify.com/post/datatable/datatable-nse/). +- Ce [post sur les fonctions utilisant data.table](https://linogaliana.netlify.app/post/datatable/datatable-nse/). diff --git a/03_Fiches_thematiques/Fiche_donnees_spatiales.qmd b/03_Fiches_thematiques/Fiche_donnees_spatiales.qmd index fdcb2996..2529d319 100644 --- a/03_Fiches_thematiques/Fiche_donnees_spatiales.qmd +++ b/03_Fiches_thematiques/Fiche_donnees_spatiales.qmd @@ -54,7 +54,7 @@ Les fonctions de `sf` sont pour la plupart préfixées par `st_` *(Spatial Type) **Le *package* `sf` introduit un objet géographique particulier : la table de données spatiale appelée `sf`. Un `sf` est simplement une table de données `R` traditionnelle (un `data.frame`), enrichie d'une colonne supplémentaire `geometry` qui contient l'information géographique.** Par conséquent, toutes les fonctions qui s'appliquent à un `data.frame` s'appliquent exactement de la même façon aux attributs des objets `sf`. ::: {.callout-note} -Le *package* `sf` est une extension du *package* `dplyr` pour les objets géographiques. On peut donc utiliser le *pipe* (`%>%`) pour chaîner des opérations avec `sf`, ce qui est souvent pratique (voir la fiche [Manipuler des données avec le tidyverse](https://book.utilitr.org/03_fiches_thematiques/fiche_tidyverse#enchaîner-les-manipulations-avec-lopérateur-pipe)). +Le *package* `sf` est une extension du *package* `dplyr` pour les objets géographiques. On peut donc utiliser le *pipe* (`%>%`) pour chaîner des opérations avec `sf`, ce qui est souvent pratique (voir la fiche [Manipuler des données avec le tidyverse](https://book.utilitr.org/03_Fiches_thematiques/Fiche_tidyverse.html#encha%C3%AEner-les-manipulations-avec-lop%C3%A9rateur-pipe)). ::: ### Créer une table de données spatiales @@ -248,7 +248,7 @@ Les limites administratives de référence sont disponibles sur le site Le code officiel géographique (COG), qui tient à jour les entités administratives (codes communes, régions, etc.) est disponible sur [le site de l'Insee](https://www.insee.fr/fr/information/2560452) et via -l'API Métadonnées. La [fiche API](https://book.utilitr.org/03_fiches_thematiques/fiche_api) indique comment accéder à des données via une API. +l'API Métadonnées. La [fiche API](https://book.utilitr.org/03_Fiches_thematiques/Fiche_api) indique comment accéder à des données via une API. ::: {.callout-tip} Contrairement à ce qui pourrait être pensé, la géographie et le COG sont régulièrement modifiés, pour prendre notamment en compte des fusions et scissions de communes. Deux ensembles apparemment identiques de codes communes au 1er janvier 2022 et 1er janvier 2021 peuvent ainsi différer, et il convient de retraiter ses données pour s'assurer qu'elles sont toutes définies dans une même géographie. @@ -288,5 +288,5 @@ L'Insee propose un outil pour sélectionner et télécharger des données géogr * la documentation du *package* `sf` : - le [site officiel](http://r-spatial.github.io/sf) du *package* ; - la [documentation](https://www.rdocumentation.org/packages/sf) du *package* ; - - la [*cheatsheet*](https://github.com/rstudio/cheatsheets/raw/master/sf.pdf) du *package* (en anglais) ; + - la [*cheatsheet*](https://raw.githubusercontent.com/rstudio/cheatsheets/master/sf.pdf) du *package* (en anglais) ; * un [tutoriel](https://rcarto.github.io/carto_avec_r) détaillé sur les données spatiales et sur la cartographie avec `R` (en français). diff --git a/03_Fiches_thematiques/Fiche_graphiques.qmd b/03_Fiches_thematiques/Fiche_graphiques.qmd index df50ae74..7f4c0fee 100644 --- a/03_Fiches_thematiques/Fiche_graphiques.qmd +++ b/03_Fiches_thematiques/Fiche_graphiques.qmd @@ -21,7 +21,7 @@ Certains exemples de cette fiche utilisent les données disponibles dans le _pac Le _package_ `esquisse` propose une interface graphique qui facilite la construction de graphiques avec `ggplot2`. L'objectif de ce *package* est de vous aider à construire rapidement un code `ggplot2` pour faire le graphique que vous voulez. En revanche, **l'utilisation d'`esquisse` ne remplace pas l'écriture d'un code `ggplot2`, et cet _add-in_ ne doit pas être utilisé pour réaliser et exporter un graphique sans sauvegarder le code qui le produit** (sinon vous ne pourrez ni reproduire ni modifier votre graphique par la suite). -Vous pouvez en apprendre davantage sur les *add-ins* dans le paragraphe de [présentation des _add-ins_](https://book.utilitr.org/03_fiches_thematiques/fiche_rprojects#les-addins-rstudio). +Vous pouvez en apprendre davantage sur les *add-ins* dans le paragraphe de [présentation des _add-ins_](https://book.utilitr.org/03_Fiches_thematiques/Fiche_rprojects#les-addins-rstudio). ::: {.callout-tip} L'interface graphique d'`esquisse` est assez gourmande en ressources, il est donc déconseillé de l'utiliser avec des données volumineuses (plus de 100 000 observations). Si vous êtes dans cette situation, **il est fortement conseillé d'utiliser `esquisse` sur une petite partie de vos données** (les 1 000 ou 10 000 premières lignes par exemple). Une fois que vous avez construit le code `ggplot2`, vous pouvez le copier-coller dans un script `R` et réaliser le graphique sur l'ensemble des données. @@ -331,9 +331,9 @@ theme_set(theme_minimal()) La fonction **`theme()`** permet de créer des templates, c'est-à-dire de définir tout ce qui n'est pas lié directement aux données sur un graphique, notamment la position, la taille, la couleur et la police des éléments textuels (légende, titres du graphique et des axes), ainsi que la couleur des grilles primaires et secondaires du graphique. La définition d'un thème personnalisé dépasse largement le cadre de la présente fiche, mais doit vous intéresser si vous devez produire des graphiques avec une apparence homogène. Voici quelques références pour les utilisateurs intéressés : -- une [introduction en français](https://mtes-mct.github.io/parcours-r/m5/les-th%C3%A8mes.html) à la définition des thèmes ; +- une [introduction en français](https://mtes-mct.github.io/parcours_r_module_datavisualisation/les-th%C3%A8mes.html) à la définition des thèmes ; - le [chapitre 9 de *R Graphics Cookbook*](https://r-graphics.org/chapter-appearance) (en anglais) aborde la question des thèmes ; -- l'[*addin* RStudio `ggThemeAssist`](https://calligross.github.io/2016-03-28-ggthemeassist-an-add-in-for-rstudio.html) est très utile pour se familiariser avec tous les éléments personnalisables des thèmes. +- l'[*addin* RStudio `ggThemeAssist`](https://github.com/calligross/ggthemeassist) est très utile pour se familiariser avec tous les éléments personnalisables des thèmes. ## Exporter un graphique diff --git a/03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd b/03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd index 242d8b58..eea75643 100644 --- a/03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd +++ b/03_Fiches_thematiques/Fiche_import_fichiers_parquet.qmd @@ -63,7 +63,7 @@ Inversement, le format Parquet présente deux contraintes inhabituelles pour les Pour en savoir plus notamment sur la comparaison entre les formats Parquet et csv, consultez [le chapitre sur le sujet](https://pythonds.linogaliana.fr/reads3/#le-format-parquet) dans le cours de l'ENSAE _"Python pour la data science"_. -Grâce aux travaux du projet Arrow, **les fichiers aux format Parquet sont inter-opérables** c'est-à-dire qu'ils peuvent être lus par plusieurs langages informatiques : [C](https://arrow.apache.org/docs/c_glib/), [C++](https://arrow.apache.org/docs/cpp/), [C#](https://github.com/apache/arrow/blob/main/csharp/README.md), [Go](https://godoc.org/github.com/apache/arrow/go/arrow), [Java](https://arrow.apache.org/docs/java/), [JavaScript](https://arrow.apache.org/docs/js/), [Julia](https://arrow.juliadata.org/stable/), [MATLAB](https://github.com/apache/arrow/blob/main/matlab/README.md), [Python](https://arrow.apache.org/docs/python/), [Ruby](https://github.com/apache/arrow/blob/main/ruby/README.md), [Rust](https://docs.rs/crate/arrow/) et bien entendu [R](https://arrow.apache.org/docs/r/). Le format Parquet est donc particulièrement adapté aux chaînes de traitement qui font appel à plusieurs langages (exemples: manipulation de données avec `R` puis _machine learning_ avec Python). +Grâce aux travaux du projet Arrow, **les fichiers aux format Parquet sont inter-opérables** c'est-à-dire qu'ils peuvent être lus par plusieurs langages informatiques : [C](https://arrow.apache.org/docs/c_glib/), [C++](https://arrow.apache.org/docs/cpp/), [C#](https://github.com/apache/arrow/blob/main/csharp/README.md), [Go](https://godoc.org/github.com/apache/arrow/go/arrow), [Java](https://arrow.apache.org/docs/java/), [JavaScript](https://arrow.apache.org/docs/js/), [Julia](https://arrow.apache.org/julia/stable/), [MATLAB](https://github.com/apache/arrow/blob/main/matlab/README.md), [Python](https://arrow.apache.org/docs/python/), [Ruby](https://github.com/apache/arrow/blob/main/ruby/README.md), [Rust](https://docs.rs/crate/arrow/) et bien entendu [R](https://arrow.apache.org/docs/r/). Le format Parquet est donc particulièrement adapté aux chaînes de traitement qui font appel à plusieurs langages (exemples: manipulation de données avec `R` puis _machine learning_ avec Python). S'il est très efficace pour l'analyse de données, **Parquet est en revanche peu adapté à l'ajout de données en continu ou à la modification fréquente de données existantes**. Pour cette utilisation, le statisticien privilégiera un système de gestion de base de données comme par exemple [`PostgreSQL`](https://www.postgresql.org/). @@ -74,7 +74,7 @@ Pour cette utilisation, le statisticien privilégiera un système de gestion de Les tables Parquet sont encore loin d'être majoritaires dans les liens de téléchargement notamment face au format csv. C'est la raison pour laquelle, nous allons dans cette section dérouler **le processus pour obtenir un fichier Parquet à partir d'un fichier csv.** -Dans un premier temps, on importe le fichier plat avec la fonction **fread()** du _package_ **data.table**, conformément aux recommandations de [la fiche sur les imports de fichiers plats](https://book.utilitr.org/03_fiches_thematiques/fiche_import_fichiers_plats). On obtient un objet `data.table` en mémoire. Dans un second temps, on exporte ces données en format Parquet avec la fonction `write_parquet()` du _package_ `arrow`. +Dans un premier temps, on importe le fichier plat avec la fonction **fread()** du _package_ **data.table**, conformément aux recommandations de [la fiche sur les imports de fichiers plats](https://book.utilitr.org/03_Fiches_thematiques/Fiche_import_fichiers_plats). On obtient un objet `data.table` en mémoire. Dans un second temps, on exporte ces données en format Parquet avec la fonction `write_parquet()` du _package_ `arrow`. ```{r, eval=FALSE} library(data.table) diff --git a/03_Fiches_thematiques/Fiche_rmarkdown_param_report.qmd b/03_Fiches_thematiques/Fiche_rmarkdown_param_report.qmd index 89fd7745..3236bacf 100644 --- a/03_Fiches_thematiques/Fiche_rmarkdown_param_report.qmd +++ b/03_Fiches_thematiques/Fiche_rmarkdown_param_report.qmd @@ -225,4 +225,4 @@ Vous pouvez télécharger le fichier `Rmd` de cet exemple sur cette [page](https ## Pour en savoir plus {#RessourcesRapportsParam} -- La [documentation officielle](https://bookdown.org/yihui/R Markdown/parameterized-reports.html) sur les rapports paramétrés avec `R Markdown`. +- La [documentation officielle](https://bookdown.org/yihui/rmarkdown/parameterized-reports.html) sur les rapports paramétrés avec `R Markdown`. diff --git a/03_Fiches_thematiques/Fiche_targets.qmd b/03_Fiches_thematiques/Fiche_targets.qmd index 5d51aab7..79c43164 100644 --- a/03_Fiches_thematiques/Fiche_targets.qmd +++ b/03_Fiches_thematiques/Fiche_targets.qmd @@ -372,7 +372,7 @@ mémoire de la session `R` dans laquelle tourne le _pipeline_. Ceci est particulièrement utile lorsque les objets manipulés sont volumineux (voir -la fiche [Superviser sa session R](https://book.utilitr.org/01_r_insee/fiche_utiliser_ressources)). +la fiche [Superviser sa session R](https://book.utilitr.org/01_R_Insee/Fiche_utiliser_utilitR)). Dans `targets`, cette opération est possible en ajoutant l'argument `garbage_collection = TRUE` à la définition de diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee8ab37a..a342c669 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -255,7 +255,7 @@ Enfin, comme montré dans la capture d'écran ci-dessous, il est possible de con La méthode présentée ci-dessus a l'inconvénient qu'elle oblige l'utilisateur à insérer son mot de passe de façon régulière, et quoi qu'il en soit, pour chaque nouveau service RStudio créé sur le SSP Cloud. Il est ainsi possible d'insérer le mot de passe en question dans les variables d'environnement insérées au moment de la création du service, via l'interface `Mes secrets` du SSP Cloud. L'utilisateur intéressé pourra s'il le souhaite consulter la [vidéo de démonstration](https://github.com/InseeFrLab/onyxia-ui/releases/download/assets/Demo_My_Secrets.mp4) explicitant l'usage de ce service. -**ATTENTION : cette méthode comporte des risques car dans l'éventualité où un attaquant parvient à accéder à votre compte sur le SSP Cloud, il récupère des identifiants lui permettant d'accéder, de manière plus ou moins limitée selon la solution retenue, à votre compte Github et à interagir avec vos dépôts. À ce stade, ce n'est pas une méthode recommandée et si elle est utilisée, il convient d'utiliser un jeton d'accès aux droits limités. La fiche `utilitR` [Configurer Git](https://book.utilitr.org/03_fiches_thematiques/fiche_configurer_git) présente plus de détails sur la question des jetons d'accès à Github +**ATTENTION : cette méthode comporte des risques car dans l'éventualité où un attaquant parvient à accéder à votre compte sur le SSP Cloud, il récupère des identifiants lui permettant d'accéder, de manière plus ou moins limitée selon la solution retenue, à votre compte Github et à interagir avec vos dépôts. À ce stade, ce n'est pas une méthode recommandée et si elle est utilisée, il convient d'utiliser un jeton d'accès aux droits limités. La fiche `utilitR` [Configurer Git](https://book.utilitr.org/03_Fiches_thematiques/Fiche_configurer_git) présente plus de détails sur la question des jetons d'accès à Github Ainsi, il est possible de récupérer, de manière systématique, son mot de passe ou, de manière un peu plus sécurisée, le token créé sous Github pour communiquer avec le dépôt. La configuration de l'accès de manière automatique peut se configurer en définissant les secrets ci-dessous dans un dossier `utilitr` :