You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* début review
* fin relecture, et implémentation des exercices à partir de savoirfR
* Correction encodage csv
* oubli dépendance savoirFR dans DESCRIPTION
Copy file name to clipboardExpand all lines: 02-generalite.Rmd
+10-7Lines changed: 10 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -18,8 +18,10 @@ cat(a, sep = '\n')
18
18
19
19
## R c'est quoi ?
20
20
21
+
{width=50px}
22
+
21
23
- Un langage de programmation interprété exécutable pas à pas $\rightarrow$ lignes de code
22
-
- Un logiciel interactif permettant de traiter divers types de données
24
+
- Un logiciel interactif permettant de traiter divers types de données
23
25
24
26
25
27
## Un peu d'histoire
@@ -31,13 +33,14 @@ Computational and Graphical Statistics*, 5(3), 299–314](https://www.stat.auckl
31
33
32
34
- S'est d'abord développé dans le monde académique, puis a essaimé vers d'autres domaines professionnels, voire associatifs
33
35
34
-
35
36
- Système toujours d’actualité - Mise à jour tous les 6 mois
36
37
37
-
- Avenir dans la statistique publique : adopté comme standard par l'Insee (à l'horizon 2025) et divers SSM. Des packages pour :
38
+
- Avenir dans la statistique publique : adopté comme standard par l'Insee (à l'horizon 2025) et divers SSM.
39
+
40
+
- Des packages pour :
38
41
- charger les données produites par l'Insee au format sdmx,
39
42
- charger les formats des organisations internationales (Eurostat, OCDE, ONU, etc.),
40
-
- charger des couches spatiales shp ou autres,
43
+
- charger des couches spatiales shp, flux ou autres,
41
44
- charger le cadastre au format EDIGEO, ...
42
45
- interroger facilement des API,
43
46
- interagir avec des bases de données,
@@ -62,14 +65,14 @@ C'est un logiciel libre : les utilisateurs ont la liberté d'exécuter, copier,
62
65
63
66
## Que peut-on faire avec R ?
64
67
65
-
- Lire des données de formats divers
68
+
- Lire des données de formats divers, les convertir
66
69
- Les manipuler (prétraitements)
67
70
- Les enrichir à partir de données externes
68
71
- Les analyser, les modéliser,
69
72
- Présenter les résultats (tableaux, graphiques, cartes)
70
73
- Publier...
71
74
72
-
... et ce au moyen d'une palette de méthodes extrêmement diversifiée.
75
+
... et ce au moyen d'une palette de méthodes extrêmement diversifiées.
73
76
74
77
Privilégie la flexibilité et le découpage des traitements en parties simples.
75
78
@@ -88,7 +91,7 @@ De base, R permet déjà de faire un très grand nombre de choses avec son socle
88
91
library(help = 'base')
89
92
```
90
93
91
-
Sur ce package `base` vient se greffer un ensemble de packages (plugins, modules) complémentaires.
94
+
Sur ce package `base` vient se greffer un ensemble de packages (plugins, modules, librairies, extensions) complémentaires.
92
95
Un package est une bibliothèque de fonctions. La plupart de ceux qui font référence sont mis à disposition de tous sur le dépôt CRAN.
93
96
94
97
Cela permet d'étendre à l'infini les possibilités de R : celles-ci sont seulement limitées par la volonté de développement (et de maintien) des utilisateurs.
- Créer plusieurs variables numériques par assignation `a <- 5`, `b <- 4`
94
-
- Regarder l'onglet Environnement
95
-
- Afficher la liste des variables avec la fonction `ls()`
96
-
- Faire un calcul avec ces variables et voir le résultat `(a+b)` etc.
97
-
- Créer une troisième variable à partir des deux premières `c <- a+b*3`
98
-
- Ré-assigner une variable : `a<-10` et vérifier l'onglet environnement
99
-
- Créer une variable chaîne de caractère (utilisation des simples quotes et des double-quotes) `t <- 'chaine'`
100
-
- Concaténer `a` et `t` avec `paste(a,t)`
101
-
- Expérimenter la casse des noms de variables : créer `A <- 15` et `B <- 12` et vérifier l'onglet environnement
102
-
- Supprimer les variables `A` et `B` avec la fonction `rm()`
103
-
- Aide en ligne `?ls` et `?rm`
104
-
- Attention : Pour supprimer toutes les variables `rm(list = ls())`
96
+
```
105
97
106
98
107
99
## Utilité des scripts
@@ -122,9 +114,9 @@ Utilisation simple de R $\rightarrow$ mode console. Chaque ordre, bout de code e
122
114
123
115
Actions plus complexes, longues, nécessitant une maintenance, des modifications $\rightarrow$ travailler à partir de la fenêtre éditeur. Les parties de code sont enchaînées et enregistrées sous la forme d'un fichier texte réutilisable par la suite.
124
116
125
-
Toujours utiliser des commentaires. Permet de pouvoir mieux comprendre ce que l'on a fait lorsqu'on reprend un programme plus tard ou lorsqu'on le donne à quelqu'un.
117
+
Toujours utiliser des commentaires, indiquer plus le 'pourquoi' que le 'quoi'. Permet de pouvoir mieux comprendre ce que l'on a fait lorsqu'on reprend un programme plus tard ou lorsqu'on le donne à quelqu'un.
126
118
127
-
## C'est à vous : utiliser un script
119
+
## C'est à vous : utiliser un script (Exercice 1bis)
128
120
129
121
- Recopier le script ci-dessous et changer les paramètres pour le re-exécuter plusieurs fois
130
122
- Sauvegarder ce script dans votre répertoire de travail, fermez le
@@ -146,8 +138,8 @@ print (imc)
146
138
```
147
139
148
140
## Installer et charger un *package*
149
-
Pour manipuler notre base de données, nous allons nous servir de fonctionnalités présentes dans le package `tidyverse`.
150
141
142
+
Pour manipuler nos données, nous allons nous servir de fonctionnalités présentes dans le package `tidyverse`.
151
143
La première fois que l'on veut utiliser un package, il faut le télécharger sur notre machine, avec `install.packages()` :
Cela marche bien quand on a un seul type de données, mais en général on va avoir à travailler sur des données brutes que l'on va retravailler ensuite et vouloir stocker à part. Si par la suite vous souhaitez avoir des exemples de bonnes pratiques sur comment structurer vos données, vous pouvez vous référer au [chapitre data](http://r-pkgs.had.co.nz/data.html) du livre d'Hadley Wickham sur la construction de packages R (tout package R étant aussi un projet !).
32
32
33
33
34
34
## Créer votre arborescence de projet
35
35
36
-
- Créer un répertoire `/src` ou vous mettrez vos scripts R.
36
+
- Créer un répertoire `/R` ou vous mettrez vos scripts R.
37
37
- Créer un répertoire `/figures` ou vous mettrez vos illustrations issues de R.
38
38
39
39
## Activer les packages nécessaires
40
40
41
-
Commencer par rajouter un script dans le répertoire `/src` à votre projet qui commencera par :
41
+
Commencer par rajouter un script dans le répertoire `/R` à votre projet qui commencera par :
42
42
43
43
- activer l'ensemble des packages nécessaires
44
44
@@ -50,7 +50,7 @@ library(tidyverse)
50
50
library(GGally)
51
51
library(plotly)
52
52
53
-
base <- read.csv(file = "extdata/Base_synth_territoires.csv",
53
+
base <- read.csv(file = "extdata/Base_synth_territoires.csv", fileEncoding = 'latin1',
Copy file name to clipboardExpand all lines: 05-premier_jeu_donnees.Rmd
+7-8Lines changed: 7 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -80,7 +80,7 @@ $\Rightarrow$ Le [module 2 "Préparation des données"](https://mtes-mct.github.
80
80
Conseil : exporter les données au format CSV ; c'est le format le plus interopérable (supporté par tous les logiciels stat). Utiliser ensuite la fonction `read.csv` après avoir défini le répertoire de travail (ou en donnant le chemin complet)
@@ -97,8 +97,10 @@ Autres façons d'importer les données
97
97
98
98
- Fonction `read_delim`, du package `readr`, plus rapide
99
99
- Fonction `fread`, du package `data.table`, beaucoup plus rapide !!
100
-
- Pour importer les fichiers XLS, ODT ou DBF, il existe des fonctions et des packages spécifiques
101
-
-**Le passage par un fichier csv est très recommandé**
100
+
- Pour importer les fichiers XLS, ODS, SHP ou DBF, il existe des fonctions et des packages spécifiques
101
+
-**Le passage par un fichier csv est très recommandé**.
102
+
103
+
Note : le [format parquet](https://arrow.apache.org/docs/r/reference/read_parquet.html) est très intéressant pour des tables de plusieurs centaines de milliers de lignes.
102
104
103
105
104
106
## Gérer le type des variables
@@ -149,17 +151,14 @@ On peut importer n'importe quel format de données en R (Excel, SAT, Stata, SQL.
149
151
150
152
Ici, nous travaillerons sur une base de données communales fournie par l'Insee, dite "comparateur de territoires".
151
153
152
-
- Utiliser la fonction `read.csv()` pour importer ce fichier et stocker le dans un objet `df`. **Veillez à ce que la région soit bien importée comme un facteur et non un entier**
153
-
154
-
- Inspecter le dataframe avec les fonctions vues auparavant pour connaître le nombre de lignes, de colonnes, ...
- En utilisant la fonction `mutate()`, créer une nouvelle variable correspondant à la densité de population (rapport de la population à la superficie de la commune), ainsi que les taux de natalité et de mortalité (en pour mille de la population 2014)
111
110
112
-
- A l'aide de la fonction `select()`, créer une nouvelle table en ne conservant que le code commune, le type de commune (ZAU), la région, le département et les variables que vous venez de créer.
113
-
114
-
- Enfin, ne conserver les communes correspondant à votre département de naissance et stocker ce *dataframe*. Attention au type de la variable département !
115
-
116
-
- Avec les opérateurs logiques, faire des essais pour sélectionner des échantillons différents (autres départements, densité, l'un et l'autre...).
Ces fonctions retournent une valeur, ou bien un ensemble de valeur (pour `quantile()`). Le résultat est donc un vecteur de un ou plusieurs nombres.
@@ -40,7 +55,7 @@ Ces fonctions retournent une valeur, ou bien un ensemble de valeur (pour `quanti
40
55
41
56
<center></center>
42
57
43
-
La fonction `summarise()` permet d'aggréger des données, en appliquant une fonction sur les variables pour construire une statistique sur les observations de la table. C'est une fonction dite de “résumé”.
58
+
La fonction `summarise()` permet d'agréger des données, en appliquant une fonction sur les variables pour construire une statistique sur les observations de la table. C'est une fonction dite de “résumé”.
@@ -60,15 +75,15 @@ La fonction `summarise()` retourne un data.frame.
60
75
La fonction `summarise()` couplée à `group_by()` permet de calculer des statistiques pour chaque modalité d'une variable qualitative. Avec `group_by()`, on précise les variables qui formeront des groupes, sur lesquels on appliquera une fonction :
@@ -102,18 +117,9 @@ La fonction `prop.table()` prend en entrée un objet `table` (tableau de conting
102
117
103
118
## Exercice 4 : calcul de statistiques
104
119
105
-
- Utilisez la fonction `summary()` pour obtenir un résumé de l'ensemble des variables de la table df
106
-
- Calculez maintenant les moyenne, médiane, écart-type et variance de la variable de densité de population. Que constatez-vous ?
107
-
- Utilisez le paramètre `na.rm = TRUE` pour gérer les valeurs manquantes
108
-
- Calculez à présent les quartiles puis déciles de cette variables
109
-
- Calculez la version centrée réduite de la variable de densité. Rappel : on calcule la version centrée réduite d'une variable X en lui appliquant la transformation suivante : $$ STD_X =\dfrac{X-\bar{X}}{\sigma_X}$$ où $\bar{X}$ est la moyenne empirique de X et $\sigma_X$ son écart-type
110
-
111
-
Tableaux croisés :
112
-
113
-
- Calculer le nombre de communes par type d'espace à l'aide de la fonction `table`, et le pourcentage associé
114
-
- Calculer le nombre de communes par région et type d'espace, et les pourcentages associés
Pour aller plus loin et ajouter des variables de pondération, calculer les profils-ligne ou profils-colonne, rendez-vous au [module 3 "Statistiques descriptives"](https://mtes-mct.github.io/parcours_r_module_statistiques_descriptives/) ou demander à un GF (Gentil Formateur).
La feuille de triche accessible depuis R Studio rassemble les principales instructions et aide à prendre en main le package :
24
+
25
+
{width=750px}
26
+
23
27
La fonction `aes()` (pour "aesthetics"), utilisée dans l'instruction `ggplot()` permet de définir les données à tracer. On y indique les dimensions que l'on veut représenter sur le graphique. On peut représenter jusqu'à 5 dimensions sur un même graphique, mais attention à la lisibilité !
24
28
25
29
- 2 variables quanti : x en fonction de y $\rightarrow$ 2 dimensions (nuage de points)
@@ -28,12 +32,12 @@ La fonction `aes()` (pour "aesthetics"), utilisée dans l'instruction `ggplot()`
28
32
- juxtaposer des graphiques en fonction d'une variable quali $\rightarrow$ 5e dimension !
29
33
30
34
## Histogramme
31
-
Si on désire un histogramme de log_SUPERF, on fera appel à la fonction `geom_histogram()`. Ce graphique ne présente qu'une seule dimension (la variable quanti dont on veut visualiser la distribution)
35
+
Si on désire un histogramme de `log_SUPERF`, on fera appel à la fonction `geom_histogram()`. Ce graphique ne présente qu'une seule dimension (la variable quanti dont on veut visualiser la distribution)
32
36
33
37
```{r graph_3, message=FALSE, warning=FALSE}
34
38
rm(list = ls())
35
39
36
-
base <- read.csv(file = "extdata/Base_synth_territoires.csv",
40
+
base <- read.csv(file = "extdata/Base_synth_territoires.csv", fileEncoding = 'latin1',
37
41
header = T, sep=";", dec=",") %>%
38
42
select(1:24) %>%
39
43
mutate(log_SUPERF = log(SUPERF),
@@ -72,22 +76,17 @@ Une fois qu'on a généré un graphique avec ggplot, on peut le passer dans la f
72
76
73
77
```{r ggplotly,message=FALSE,warning=FALSE}
74
78
library(plotly)
75
-
g <- ggplot(data = base, aes(x = REG, fill = REG)) +
79
+
g <- ggplot(data = base, aes(x = ZAU, fill = ZAU)) +
0 commit comments