-
Notifications
You must be signed in to change notification settings - Fork 3
/
05-operation-sur-donnees-attributaires.Rmd
94 lines (66 loc) · 2.46 KB
/
05-operation-sur-donnees-attributaires.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# (PART) Manipuler des données spatiales {.unnumbered}
# Les opérations sur données attributaires {#operation-sur-donnees-attributaires}
Dans ce chapitre, nous allons utiliser les packages suivants :
```{r pkg_chap_5_donnees_attr}
# CRAN
library(mapview)
library(sf)
library(tidyverse)
```
Nous utiliserons les contours des territoires de la France métropolitaine issus de Admin Express.
```{r, eval = FALSE}
load("extdata/admin_express.RData")
```
Prenons la table des départements, cette table est un dataframe spatial.
```{r}
class(departements_geo)
```
On peut utiliser `mapview()` pour voir ce jeu de données.
```{r}
mapview(departements_geo, zcol = "NOM_DEP", legend = FALSE)
```
Comme évoqué dans la partie 1, on peut tout à fait appliquer sur un dataframe spatial les verbes du `tidyverse` comme sur un dataframe, notamment utiliser les verbes de `dplyr`.
Nous pouvons à partir de cette table filtrer les départements d'une certaine région.
```{r}
departements_geo %>%
filter(INSEE_REG == 52)
```
Nous pouvons ne sélectionner que quelques variables
```{r}
departements_geo %>%
select(INSEE_DEP) %>%
glimpse()
```
A noter que par défaut, un dataframe spatial gardera toujours la géométrie.
On dit qu'elle est collante.
Au besoin, pour la supprimer d'un jeu de donnée, il faut lui appliquer la fonction `st_drop_geometry()` qui ne renverra que les données attributaires.
Nous pouvons agréger nos données.
```{r}
regions <- departements_geo %>%
group_by(INSEE_REG) %>%
summarise(AREA = sum(AREA))
glimpse(regions)
```
On voit que `summarise` permet non seulement d'agréger nos données attributaires, mais également les géométries.
Cette opération permet donc de retrouver directement notre carte des régions métropolitaines.
```{r}
mapview(regions, zcol = "INSEE_REG", legend = FALSE)
```
On peut enfin effectuer des jointures attributaires sur nos données en utilisant les verbes à deux dataframes de `dplyr`.
Par exemple on va pouvoir récupérer, dans la table `regions_geo` de notre `RData`, les libellées de nos régions.
```{r}
regions <- regions %>%
left_join(regions_geo %>%
st_drop_geometry(),
by = c("INSEE_REG")
)
```
Nous pouvons alors utiliser ce nouvelle attribut pour nos cartes.
```{r}
mapview(regions, zcol = "NOM_REG", legend = FALSE)
```
> Attention, quand vous réalisez une jointure entre deux tables de données :
>
> `X %>% ZZ_join(Y)`
>
> La composante spatiale n'est conservée que pour la première table X.