Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/InseeFrLab/utilitR
Browse files Browse the repository at this point in the history
  • Loading branch information
oliviermeslin committed Jun 7, 2021
2 parents a0dc6ab + e65d29a commit 40ca41a
Show file tree
Hide file tree
Showing 34 changed files with 334 additions and 122 deletions.
12 changes: 7 additions & 5 deletions 01_R_Insee/Fiche_installer_packages.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@

### Qu'est-ce qu'un _package_ `R` ?

**Un _package_ est un ensemble de fonctions développées par des utilisateurs de `R`, qui améliorent ou étendent les fonctionnalités de base de `R`.** Par exemple, le _package_ `ggplot2` propose des fonctions pour réaliser toutes sortes de graphiques avec `R`. Les _packages_ sont au coeur de la logique collaborative de `R`, car ils permettent de bénéficier des contributions d'autres utilisateurs de `R`. Début 2021, il existe plus de 14 000 _packages_ disponibles pour `R`, qui couvrent une multitude de tâches. Il est donc primordial de savoir où chercher des _packages_ et comment les utiliser.
Un _package_ est un ensemble de fonctions développées par des utilisateurs de `R`, qui améliorent ou étendent les fonctionnalités de base de `R`.

Par exemple, le _package_ `ggplot2` propose des fonctions pour réaliser toutes sortes de graphiques avec `R`. Les _packages_ sont au coeur de la logique collaborative de `R`, car ils permettent de bénéficier des contributions d'autres utilisateurs de `R`. Début 2021, il existe plus de 14 000 _packages_ disponibles pour `R`, qui couvrent une multitude de tâches. Il est donc primordial de savoir où chercher des _packages_ et comment les utiliser.

D'un point de vue technique, un _package_ est constitué d'objets `R` (la plupart du temps des fonctions, parfois des données) et d'une documentation empaquetés en un seul fichier, dans le but d'être partagé facilement. En outre, les _packages_ `R` ont trois caractéristiques importantes :

- **Un _package_ `R` peut exiger une version minimale de `R` pour fonctionner.** Par exemple, le _package_ `ggplot2` (qui sert à faire des graphiques) ne peut fonctionner qu'avec `R 3.2` au minimum. Vous pouvez donc être contraints de modifier la version de `R` que vous utilisez pour pouvoir installer un _package_. En pratique cela arrive rarement.
- **Les _packages_ `R` sont spécifiques à la version de `R` avec laquelle ils ont été installés.** Ainsi, un _package_ installé avec la version 3.6 de `R` peut ne pas fonctionner avec les versions 3.5 ou 4.0. La principale conséquence pratique de cette caractéristique est que vous devrez réinstaller les _packages_ si vous modifiez la version de `R` que vous utilisez. Cette réinstallation ne présente généralement aucune difficulté technique, mais elle peut prendre du temps.
- Un _package_ `R` peut exiger une version minimale de `R` pour fonctionner. Par exemple, le _package_ `ggplot2` (qui sert à faire des graphiques) ne peut fonctionner qu'avec `R 3.2` au minimum. Vous pouvez donc être contraints de modifier la version de `R` que vous utilisez pour pouvoir installer un _package_. En pratique cela arrive rarement.
- Les _packages_ `R` sont spécifiques à la version de `R` avec laquelle ils ont été installés. Ainsi, un _package_ installé avec la version 3.6 de `R` peut ne pas fonctionner avec les versions 3.5 ou 4.0. La principale conséquence pratique de cette caractéristique est que vous devrez réinstaller les _packages_ si vous modifiez la version de `R` que vous utilisez. Cette réinstallation ne présente généralement aucune difficulté technique, mais elle peut prendre du temps.
- Les _packages_ `R` font fréquemment appel à d'autres _packages_ appelés **dépendances** : la fonction `fonction1()` du _package_ `package1` fait appel à la fonction `fonction2()` du _package_ `package2`, et ainsi de suite. Un _package_ `R` ne pourra être utilisé que si ses dépendances sont également installées. Fort heureusement, la plupart du temps vous n'avez pas à vous préoccuper des dépendances de _packages_ car `R` installe par défaut toutes les dépendances nécessaires.


Expand Down Expand Up @@ -74,7 +76,7 @@ Une fois qu'un _package_ a été installé sur un ordinateur, il y est présent
Par défaut, la fonction `install.packages` télécharge le _package_ demandé sur le dépôt officiel du projet `R`, le [CRAN](https://cran.r-project.org). Il est possible de modifier le dépôt utilisé grâce à l'argument `repos` de `install.packages`, mais vous n'avez normalement pas besoin de le faire dans le cadre d'un usage standard de `R`.

:::{.specificite}
**L'installation de _packages_ dans AUS fonctionne de façon légèrement différente.** En effet, une session `R` ne peut pas se connecter au site du CRAN depuis AUS car les serveurs AUS n'ont pas accès à internet pour des raisons de sécurité. Pour contourner cette difficulté, l'Insee dispose de son propre dépôt de _packages_ `R`, accessible uniquement depuis le réseau interne. Ce dépôt est un miroir du CRAN, et est mis à jour quotidiennement. La configuration de `R` dans AUS est définie de sorte que `R` utilise par défaut le dépôt interne. Par conséquent, vous n'avez donc aucun réglage à faire par vous-même pour utiliser ce dépôt.
L'installation de _packages_ dans AUS fonctionne de façon légèrement différente. En effet, une session `R` ne peut pas se connecter au site du CRAN depuis AUS car les serveurs AUS n'ont pas accès à internet pour des raisons de sécurité. Pour contourner cette difficulté, l'Insee dispose de son propre dépôt de _packages_ `R`, accessible uniquement depuis le réseau interne. Ce dépôt est un miroir du CRAN, et est mis à jour quotidiennement. La configuration de `R` dans AUS est définie de sorte que `R` utilise par défaut le dépôt interne. Par conséquent, vous n'avez donc aucun réglage à faire par vous-même pour utiliser ce dépôt.
:::

#### Installation des dépendances
Expand Down Expand Up @@ -179,7 +181,7 @@ library(ggplot2)
Par défaut, la fonction `library` cherche le _package_ dans la librairie d'installation des _packages_ (voir le paragraphe \@ref(libraries)). `R` renvoie une erreur s'il ne trouve pas le _package_ considéré dans la librairie. Il est possible de modifier la librairie dans laquelle la fonction `library` cherche les _packages_ grâce à l'argument `lib.loc`, mais vous n'avez normalement pas besoin de le faire dans le cadre d'un usage standard de `R`.

::: {.conseil}
**Il est indispensable de rassembler les instructions de chargement de _package_ au début des programmes `R`**, car cela permet à un utilisateur qui ne connaît pas les programmes de repérer facilement les _packages_ utilisés.
Il est indispensable de rassembler les instructions de chargement de _package_ au début des programmes `R`, car cela permet à un utilisateur qui ne connaît pas les programmes de repérer facilement les _packages_ utilisés.
:::

## Pour en savoir plus
Expand Down
115 changes: 115 additions & 0 deletions 01_R_Insee/Fiche_utiliser_Rstudio_AUSv3.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Utiliser RStudio sur l'environnement AUSv3 {#AUSv3}

::: recommandation
La collection RPython d'AUSv3 est l'environnement de référence pour réaliser des tâches de production statistique et des études avec `R` et RStudio. C'est notamment sur cette collection qu'il est possible de traiter des données confidentielles avec `R` et RStudio.

`R` et RStudio sont également disponibles sur deux autres collections d'AUSv3 :

- la collection Formation (accessible uniquement dans le cadre de formations dispensées à l'Insee) ;
- la collection Lab réservée à des usages expérimentaux ou nécessitant des ressources importantes.

Par ailleurs, si vos traitements nécessitent un accès à internet ou des outils non encore disponibles sur AUSv3, il est préférable d'utiliser le SSP Cloud.
:::

## Présentation succincte d'AUSv3

Les serveurs AUSv3 sont des environnements informatiques de travail sur lesquels les agents de l'Insee peuvent traiter des données confidentielles de façon sécurisée. Les serveurs AUSv3 sont regroupés en cinq groupes de serveurs appelés collections : la collection SAS, la collection WPS, la collection RPython, la collection Formation et la collection Lab.

Une collection AUSv3 est un regroupement de serveurs tous strictement identiques entre eux : les ressources informatiques, la configuration et les logiciels disponibles sont exactement les mêmes sur les différents serveurs d'une collection. En revanche, les collections sont différentes entre elles. Par exemple, tous les serveurs de la collection RPython disposent `R`, RStudio et Python (mais pas de SAS), et tous les serveurs de la collection SAS disposent de SAS (mais pas de RStudio ni de Python).

::: specificite

Les serveurs AUSv3 font l'objet d'une documentation fournie. Cette documentation se trouve principalement sur l'intranet Insee. Vous pouvez y accéder par le site [agora.insee.fr], puis en cliquant sur `Services > DSI > Libre Service statistique > AUS V3`.

Des fiches et des tutoriels sont également disponibles dans AUSv3, dans le lecteur `Commun`.
:::


::: conseil
Le document de référence sur l'utilisation d'AUSv3 est le guide de l'utilisateur d'AUSv3 disponible sur [ce lien](https://www.agora.insee.fr/cms/sites/sgi/home/libre-service-statistique/aus-v3/reunions-dinformation-aus-v3.html).
:::


## Comment se connecter à AUSv3

### Obtenir un accès à AUSv3

Pour obtenir un accès à AUSv3, vous devez déposer une demande sur l'outil `Siamoi`. Voici la procédure :

- Double-cliquer sur l'icône `Siamoi` disponible sur le bureau de votre poste local ;
- Cliquer sur "Faire une demande" ;
- Sous la bannière *"AUS : Création / suppression / modification de mon espace personnel"*, cliquer sur *"Demander"*.

Vous devriez recevoir des emails vous indiquant que votre accès à AUS a été créé. Suite à la création de votre accès à AUS, vous devriez voir apparaître l'icône suivante sur votre bureau :
```{r, out.extra = 'style="display: inline-block; padding : 0; width: 40px;"', echo = FALSE}
utilitr::include_image("./pics/AUSv3/AUSv3.png", compression = FALSE)
```
.

::: conseil
Si votre accès à AUS n'est pas créé rapidement, vous pouvez ouvrir un ticket `Siamoi`.
:::


### Ouvrir une session sur AUSv3

Pour ouvrir une session sur la collection `RPython`, il faut cliquer sur l'icône d'AUSv3
```{r, out.extra = 'style="display: inline-block; padding : 0; width: 40px;"', echo = FALSE}
utilitr::include_image("./pics/AUSv3/AUSv3.png", compression = FALSE)
```
puis sur le raccourci
```{r, out.extra = 'style="display: inline-block; padding : 0; width: 140px;"', echo = FALSE}
utilitr::include_image("./pics/AUSv3/Raccourci_AUS_RPython.png", compression = FALSE)
```
.

## Utiliser RStudio dans AUSv3

### Ouvrir RStudio

Pour ouvrir RStudio dans AUSv3, il suffit de double-cliquer sur l'icône RStudio présente sur le bureau d'AUS (encadrée en rouge sur l'image ci-dessous).

```{r, echo = FALSE, out.width= "75%", fig.cap= "Ecran d'accueil de la collection RPython d'AUSv3"}
utilitr::include_image("./pics/AUSv3/Desktop_AUS.png", ratio_compression = 1)
```

D'une manière générale, `R` et `RStudio` s'utilisent sur AUSv3 de la même manière que sur un ordinateur personnel. Il existe toutefois certaines particularités liées aux droits d'accès des utilisateurs à certains dossiers :

- dans AUSv3, les utilisateurs ont accès au CRAN _via_ un _proxy_ ;
- l'absence d'accès à Internet rend impossible l'installation directe de _packages_ hébergés sur des forges logicielles extérieures à l'Insee (par exemple, la fonction `remotes::install_github()` ne fonctionne pas) ;
- les _packages_ installés par un utilisateur sont stockés par défaut sur son espace personnel, dans le dossier `(ESPERT)/R/win-library` ; il est toutefois possible de changer ce répertoire par défaut avec la fonction `.libPaths()` ;
- les fichiers de configuration `.Rprofile` et `.Renviron` sont recherchés par défaut au démarrage dans le dossier `(ESPERT)/R`.

Pour plus de détails concernant ces points, consulter les fiches [Utiliser des _packages_ `R`](#utiliser-packages) et [Personnaliser la configuration de `R`](#personnaliser).

::: remarque
Il est possible de demander la mise à disposition dans AUSv3 de _packages_ non disponibles sur le CRAN. Pour ce faire, il faut déposer une demande métier sur `Siamoi`.
:::

::: conseil
Les ressources informatiques des serveurs AUSv3 (mémoire vive et processeurs) sont
partagées entre les applications et les utilisateurs. Il est donc essentiel de
veiller à faire un bon usage de ces ressources, de façon à ne pas gêner
le travail des autres applications ou utilisateurs. Il est conseillé de lire la fiche [Superviser sa session `R`](#superviser-ressources) pour apprendre à superviser votre usage de `R`.

:::

### Travailler avec Git sur AUSv3

#### Créer une clé SSH ou un _token_ https

Pour mettre en place une clé SSH ou un _token_ https sur AUSv3, vous pouvez vous reporter aux ressources suivantes :

- la fiche [Configurer `Git` sur son poste de travail](#git-config) ;
- la fiche consacrée à ce sujet dans la documentation d'AUSv3 ;
- la partie sur les bonnes pratiques dans le guide de l'utilisateur d'AUSv3.

#### Où stocker les dépôts locaux

Lorsque vous créez un projet RStudio en clonant un dépôt distant, il est nécessaire de définir l'emplacement de votre dépôt local (voir la fiche [Travailler avec Git](#git)). Dans AUSv3, il est conseillé de stocker vos dépôts locaux dans votre espace personnel (lecteur `ESPERT`). Par exemple, vous pouvez stocker tous vos dépôts dans un dossier `DepotsGit` du lecteur `ESPERT`. En revanche, il est déconseillé de stocker un dépôt local dans un coffre ou dans un espace partagé, car d'autres agents peuvent avoir accès à votre dépôt local.

## 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 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).
4 changes: 2 additions & 2 deletions 01_R_Insee/Fiche_utiliser_ressources.Rmd
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Superviser sa session `R` {#superviser-ressources}

::: {.recommandation}
::: recommandation

Dans un environnement où `R` est en concurrence avec d'autres usages informatiques
(dans une session personnelle ou environnement de travail partagé comme AUS à l'Insee),
(dans une session personnelle ou environnement de travail partagé comme AUSv3 à l'Insee),
les ressources informatiques (mémoire vive et processeurs) sont
partagées entre les applications et les utilisateurs. Il est donc essentiel de
veiller à faire un bon usage de ces ressources, de façon à ne pas gêner
Expand Down
9 changes: 4 additions & 5 deletions 03_Fiches_thematiques/Fiche_configurer_git.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ de s'authentifier avec des jetons personnels d'accès (*personal access tokens*)
un _login_ et un mot de passe.
:::

```{r, echo = FALSE, fig.cap = "Schéma illustratif d'un processus utilisant R, Git et Gitlab"}
knitr::include_graphics("./pics/git/gitlab.png")
```

## Les différentes forges utilisables

Expand Down Expand Up @@ -64,7 +61,9 @@ de commande (`Git Bash`) et une interface (`Git GUI`).

## Interaction avec un dépôt distant : principe

[METTRE UN JOLI SCHEMA A PARTIR DE COLLABORATIF QUAND IL SERA PRET]
```{r, echo = FALSE, fig.cap = "Schéma illustratif d'un processus utilisant R, Git et Gitlab"}
knitr::include_graphics("./pics/git/gitlab.png")
```

`Git` est un système décentralisé de contrôle de version : les codes sont
modifiés par chaque agent sur son poste de travail, puis sont mis en
Expand Down Expand Up @@ -282,7 +281,7 @@ GitLab est désormais configuré, et il est alors possible de faire
dialoguer Git et GitLab en suivant, par exemple, les routines proposées dans
la fiche [Utiliser R avec RStudio](#git).

## Références
## Pour en savoir plus {#GitRessources}

* [formation Travail collaboratif avec `R`](https://linogaliana.gitlab.io/collaboratif/git.html) ;
* [*Happy Git with R*](https://happygitwithr.com/).
2 changes: 1 addition & 1 deletion 03_Fiches_thematiques/Fiche_connexion_bdd.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ Il est fréquent que les bases de données contiennent des données volumineuses

Cette fiche reprend partiellement ce [tutoriel RStudio](https://db.rstudio.com/databases) (en anglais).

## Pour en savoir plus
## 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) ;
Expand Down
Loading

0 comments on commit 40ca41a

Please sign in to comment.