-
Notifications
You must be signed in to change notification settings - Fork 42
/
export-de-donnees.Rmd
91 lines (50 loc) · 4.85 KB
/
export-de-donnees.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
---
title: "Export de données"
---
```{r options_communes, include=FALSE, cache=FALSE}
source("options_communes.R")
```
<dfn data-index="données, exporter"></dfn><dfn data-index="exporter des données"></dfn>
## Export de tableaux de données
On peut avoir besoin d'exporter un tableau de données dans **R** vers un fichier dans différents formats. La plupart des fonctions d'import disposent d'un équivalent permettant l'export de données. On citera notamment :
- `write_csv`{data-pkg="reader" data-rdoc="write_delim"}, `write_delim`{data-pkg="reader" data-rdoc="write_delim"}, `write_tsv`{data-pkg="reader" data-rdoc="write_delim"} (`readr`{.pkg})permettent d'enregistrer un *data frame* ou un tibble dans un fichier au format texte délimité
- `write_sas`{data-pkg="haven" data-rdoc="read_sas"} (`haven`{.pkg}) permet d'exporter au format **SAS**
- `write_sav`{data-pkg="haven" data-rdoc="read_spss"} (`haven`{.pkg}) permet d'exporter au format **SPSS**
- `write_dta`{data-pkg="haven" data-rdoc="read_dta"} (`haven`{.pkg}) permet d'exporter au format **Stata**
L'extension `readxl` ne fournit pas de fonction pour exporter au format **Excel**. Par contre, on pourra passer par la fonction `write.xlsx`{data-pkg="openxlsx"} de l'extension `openxlsx`{.pkg} ou la fonction `write.xlsx`{data-pkg="xlsx"} de l'extension `xlsx`{.pkg}. L'intérêt de l'extension `openxlsx`{.pkg} est de ne pas dépendre de **Java** à la différence de l'extension `xlsx`{.pkg}.
Pour le format **dBase**, on peut utiliser `write.dbf`{data-pkg="foreign"} (`foreign`{.pkg}).
Ces fonctions sont utiles si on souhaite diffuser des données à quelqu'un d'autre, ou entre deux logiciels.
Si vous travaillez sur des données de grandes dimensions, les formats texte peuvent être lents à exporter et importer. Dans ce cas, l'extension `feather`{.pkg} peut être utile : elle permet d'enregistrer un *data frame* au format feather, qui n'est pas le plus compact mais qui est extrêmement rapide à lire et écrire ^[`feather` est un format compatible avec **Python**, **R** et **Julia**. Pour plus d'informations voir https://github.com/wesm/feather].
Les fonctions `read_feather`{data-pkg="feather"} et `write_feather`{data-pkg="feather" data-doc="read_feather"} permettent d'importer et exporter des tableaux de données dans ce format.
## Exporter des objets spatiaux
On aura recours à l'extension `maptools`{.pkg} qui fournit les fonctions `writePointsShape`{data-pkg="maptools" data-rdoc="readShapePoints"} | `maptools`{.pkg}, `writeLinesShape`{data-pkg="maptools" data-rdoc="readShapeLines"} et `writePolyShape`{data-pkg="maptools" data-rdoc="readShapePoly"} pour exporter des données respectivement de type points, lignes et polygones au format **Shapefile**, et la fonction `writeAsciiGrid`{data-pkg="maptools" data-rdoc="readAsciiGrid"} pour exporter un objet raster au format **ASCII grid**.
## Sauvegarder des objets
Une autre manière de sauvegarder des données est de les enregistrer au format `RData`. Ce format propre à **R** est compact, rapide, et permet d'enregistrer plusieurs objets **R**, quel que soit leur type, dans un même fichier.
Pour enregistrer des objets, il suffit d'utiliser la fonction `save`{data-pkg="base"} et de lui fournir la liste des objets à sauvegarder et le nom du fichier :
```{r, eval = FALSE}
save(d, rp2012, tab, file = "fichier.RData")
```
Pour charger des objets préalablement enregistrés, utiliser `load` :
```{r, eval = FALSE}
load("fichier.RData")
```
Les objets `d`, `rp2012` et `tab` devraient alors apparaître dans votre environnement.
<div class="important">
Attention, quand on utilise `load`{data-pkg="base"}, les objets chargés sont importés directement dans l'environnement en cours avec leur nom d'origine. Si d'autres objets du même nom existaient déjà, ils sont écrasés sans avertissement.
</div>
**R** propose différentes fonctions permettant d'exporter des données vers des formats variés.
| Type de fichier souhaité | Fonction | Extension |
|:---|:---|:---|
| texte | `write.table`{data-pkg="utils"} | `utils`{.pkg} |
| CSV | `write.csv`{data-pkg="utils" data-rdoc="write.table"} | `utils`{.pkg} |
| CSV | `write_csv`{data-pkg="readr"} | `readr`{.pkg} |
| Excel | `write.xlsx`{data-pkg="xlsx"} | `xlsx`{.pkg} |
| dBase | `write.dbf`{data-pkg="foreign"} | `foreign`{.pkg} |
| SPSS | `write_sav`{data-pkg="haven"} | `haven`{.pkg} |
| SPSS | `write.foreign`{data-pkg="foreign"} | `foreign`{.pkg} |
| Stata | `write.dta`{data-pkg="foreign"} | `foreign`{.pkg} |
| Stata | `write_dta`{data-pkg="haven"} | `haven`{.pkg} |
| SAS | `write.foreign`{data-pkg="foreign"} | `foreign`{.pkg} |
| SPSS | `write.foreign`{data-pkg="foreign"} | `foreign`{.pkg} |
À nouveau, pour plus de détails on se référera aux pages d'aide de ces fonctions et au manuel
<cite>R Data Import/Export</cite> accessible à l'adresse suivante : <http://cran.r-project.org/manuals.html>.