View
85
Download
1
Category
Preview:
Citation preview
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
.
.Utilisation de R à la DMIS (ANSD)
Ahmadou H. Dicko
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Introduction
R est l’un des langage pour l’analyse de données les plusutilisés dans le monde
Le nombre d’utilisateurs est estimé à 2 millions (2014)
Le langage est en fort croissance et est de plus en plus adoptépar des organismes
En 2011, l’ONUDI écrit un rapport sur l’utilisation de R enstatistiques publiques
Quelques années plus tard, en 2014, il est adopté par plusieursinstituts de statistiques publiques
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Plan
...1 C’est quoi R ?
...2 Programmation R
...3 Importation de données avec R
...4 Cartographie avec R
...5 Interfacer un SGBD avec R
...6 Autres aspects
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Historique
R est un langage interpreté qui tirent ses racines de S, Lisp,schemesQuelques dates importantes :
1990 : Ross Ihaka et Robert Gentleman développent R1996 : le projet devient open source2000 : la version 1.0 de R voit le jour2015 : R 3.2 sort en Avril et il y a plus de 6000 packages (add-ons)
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Points fort de R
R est gratuit et open source
R a de bon outils pour la manipulation des données
Les graphiques R sont de très bonnes qualités
De nombreux outils pour faire rapports et des outils web
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Plan
...1 C’est quoi R ?
...2 Programmation R
...3 Importation de données avec R
...4 Cartographie avec R
...5 Interfacer un SGBD avec R
...6 Autres aspects
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Concepts importants
Un package R est en ensemble de fonctionnalité généralementorganisé autour d’un thème (ou pas)
Travailler sur R nécessite d’écrire des lignes de commandes (pastoujours)
Rstudio est un environnement de travail pour R (mais y end’autres… ESS)
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Environnement de travail: Rstudio
1
2
3
4
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Environnement de travail: Emacs ESS
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage : R calculatrice ?
c(pi, 4 * pi / 3)
[1] 3.1416 4.1888
log(cos(pi / 3))
[1] -0.69315
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage : R calculatrice ?
a <- 25
a
[1] 25
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage : vecteur
c(1, 2, 10)
[1] 1 2 10
c("Ali", "Modou", "Marie")
[1] "Ali" "Modou" "Marie"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage : matrice
(m <- matrix(c(1, 2, 10, 9), nrow = 2))
[,1] [,2][1,] 1 10[2,] 2 9
m[1, 2]
[1] 10
m[, 2]
[1] 10 9
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage : list
c("Ali", 10, "Marie")
[1] "Ali" "10" "Marie"
list("Ali", 10, "Marie")
[[1]][1] "Ali"
[[2]][1] 10
[[3]][1] "Marie"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: data.frame
(df <- data.frame(nom = c("Ali", "Modou", "Marie"),taille = c(170, 185, 165)))
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: data.frame
df$nom
[1] Ali Modou MarieLevels: Ali Marie Modou
df[df$taille > 165, ]
nom taille1 Ali 1702 Modou 185
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: data.frame
library(dplyr)
df %>% select(nom)
nom1 Ali2 Modou3 Marie
df %>% filter(taille > 165)
nom taille1 Ali 1702 Modou 185
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: fonction
carré <- function(x) x^2
carré(-8)
[1] 64
carré(c(1, 10, -5))
[1] 1 100 25
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: graphique
barplot(df$taille, names.arg = df$nom, col = "steelblue")
Ali Modou Marie
050
100
150
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: graphiqueplot(mpg ~ wt, data = mtcars, pch = 19, las = 1, cex = 0.8)abline(lm(mpg ~ wt, data = mtcars), col = "red")
2 3 4 5
10
15
20
25
30
wt
mpg
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: graphique
library(ggplot2)ggplot(df, aes(nom, taille)) +geom_bar(stat = "identity", fill = "steelblue")
0
50
100
150
Ali Marie Modounom
taille
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Base du langage: graphique
ggplot(mtcars, aes(wt, mpg)) +geom_point(shape = 19) +geom_smooth(method = "lm", se = FALSE, colour = "red")
10
15
20
25
30
35
2 3 4 5wt
mpg
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Plan
...1 C’est quoi R ?
...2 Programmation R
...3 Importation de données avec R
...4 Cartographie avec R
...5 Interfacer un SGBD avec R
...6 Autres aspects
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Lecture de fichier Excel (< 2007)
(df1 <- read_excel("foreign/taille.xls"))
Source: local data frame [3 x 2]
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Lecture de fichier Excel 2007+
(df2 <- read_excel("foreign/taille.xlsx"))
Source: local data frame [3 x 2]
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Lecture de fichier SPSS
library(haven)(df3 <- read_sav("foreign/taille.sav"))
Source: local data frame [3 x 2]
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Lecture de fichier Stata
(df4 <- read_dta("foreign/taille.dta"))
Source: local data frame [3 x 2]
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Ecriture de fichier
On peut exporter des fichier vers Excel
library(openxlsx)write.xlsx(list("feuille_df4" = df4, "feuille_df3" = df3),
file = "foreign/new.xlsx")
On peut aussi exporter des fichier SPSS (ou Stata)
write_sav(df2, path = "foreign/new.sav")
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Plan
...1 C’est quoi R ?
...2 Programmation R
...3 Importation de données avec R
...4 Cartographie avec R
...5 Interfacer un SGBD avec R
...6 Autres aspects
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Ouvrir des données spatiales avec R
library(rgdal)library(rgeos)village <- readOGR(dsn = "spatial/loc", layer = "loc")
OGR data source with driver: ESRI ShapefileSource: "spatial/loc", layer: "loc"with 10537 featuresIt has 25 fields
class(village)
[1] "SpatialPointsDataFrame"attr(,"package")[1] "sp"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Ouvrir des données spatiales avec R
routes <- readOGR(dsn = "spatial/routes", layer = "roads")
OGR data source with driver: ESRI ShapefileSource: "spatial/routes", layer: "roads"with 1526 featuresIt has 15 fields
class(routes)
[1] "SpatialLinesDataFrame"attr(,"package")[1] "sp"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Ouvrir des données spatiales avec R
region <- readOGR(dsn = "spatial/reg", layer = "reg")
OGR data source with driver: ESRI ShapefileSource: "spatial/reg", layer: "reg"with 14 featuresIt has 4 fields
class(routes)
[1] "SpatialLinesDataFrame"attr(,"package")[1] "sp"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Faire des cartes avec Rplot(region)lines(routes, col = "darkgrey")points(village, pch = 21, cex = 0.025, col = "steelblue")
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Opération spatiale avec Rroutes5k <- gBuffer(routes, byid = TRUE, width = 5000) ### unite en mplot(routes5k)points(village[routes5k, ], pch = 21, cex = 0.025, col = "steelblue")
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Opération spatiale avec Rset.seed(42)n <- length(region)sub_loc <- lapply(seq(n),
function(id) spsample(region[id, ], n = 3, type = "random"))sub_loc <- do.call(rbind, sub_loc)plot(region)points(sub_loc, pch = 19, cex = 0.001, col = "red")
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Plan
...1 C’est quoi R ?
...2 Programmation R
...3 Importation de données avec R
...4 Cartographie avec R
...5 Interfacer un SGBD avec R
...6 Autres aspects
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
Parfois il arrive de travailler avec des ”big data”
R utilise la mémoire vive par défautIl est alors possible d’interfacer un SGBD:
Possibilité de faire des calculs sans charger la base en mémoireWorkflow plus simple pour des organisations qui déjà unsystème en place
R dispose d’un driver pour virtuellement tout les système:SQLite, SQL Server, Postgres, MySQL, Access, etc.
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
library(DBI)library(RSQLite)conn <- dbConnect(SQLite(), "db/taille.db")
dbListTables(conn)
[1] "taille"
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
dbListFields(conn, "taille")
[1] "nom" "taille"
dbGetQuery(conn, "SELECT * FROM taille")
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
dbGetQuery(conn, "SELECT nom from taille WHERE taille > 165")
nom1 Ali2 Modou
dbDisconnect(conn)
[1] TRUE
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
db <- src_sqlite("db/taille.db")
Warning message:dbGetInfo is deprecated: please use individual metadata functions instead
df <- tbl(db, "taille")df
Source: sqlite [db/taille.db]From: taille [3 x 2]
nom taille1 Ali 1702 Modou 1853 Marie 165
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
df %>% filter(taille > 165) %>% select(nom)
Source: sqlite [db/taille.db]From: taille [2 x 1]Filter: taille > 165
nom1 Ali2 Modou
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Interfacer un SGBD avec R
collect(tbl(db, sql("select nom from taille where taille > 165")))
Source: local data frame [2 x 1]
nom1 Ali2 Modou
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Autres aspects
Il existe des packages pour l’imputation des donnéesmanquantes:
Amelia : Algorithme EMmice : Méthode des équations chainées
Des fonctions pour réaliser l’anonymisation selon les standardsIHSN sont disponibles:
package sdcMicro et sdcMicroGUI
Possibilité de créer des templates pour des rapportsautomatiques sous plusieurs formats
R à de plus en plus d’outils pour développer rapidement desapplications web de diffusion de données
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
C’est quoi R ? Programmation R Importation de données avec R Cartographie avec R Interfacer un SGBD avec R Autres aspects
Conclusion
Le point fort R réside dans:les 6000 packages existantsla dynamique autour du langagela flexibilité du langage et la capacité à améliorer lesfonctionnalité
R est de facto le langage pour le traitement des données
De nombreuses agences de statistiques utilisent R aujourd’hui
Beaucoup d’autres continuent à remplacer SAS / SPSS par R
Ahmadou H. Dicko
Utilisation de R à la DMIS (ANSD)
Recommended