0% ont trouvé ce document utile (0 vote)
1K vues94 pages

Cours R

Transféré par

wis
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1K vues94 pages

Cours R

Transféré par

wis
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Projet Statistique sous

Année Académique: 2021/2022

Niveau: C2A1-MDSMS : Cycle 2, Année 1


Filière : Ingénieur Statisticien Economiste

WANSOUWE WANBITCHING, PhD


1
Informations générales
 Intitulé : Projet Statistique sous R
◦ Cours magistral : 10 heures
◦ Travaux dirigés : 5 heures
◦ TPE / TP : 5 heures
Éléments constitutifs de l'Unité d'Enseignement
◦ Cours magistral : soyez attentifs!
◦ Travaux Dirigés : Exercices
◦ Travail Personnel de l'étudiant
Organisation des évaluations
◦ Exercices et Travaux Pratiques
◦ Questions de cours
◦ Parfois des QCM

Types d'évaluation
◦ Projet : Travail à faire à la maison

2
Plan

Notions Intitulés
1 Introduction: R et Statistiques
2 Objets de R
3 Structures de données
4 Fonctions
5 Manipulation des données
6 Tests statistiques avec R

3
Pourquoi ce cours ?

L’objet de ce cours est d’initier les


apprenants à l’utilisation du logiciel R
pour l’analyse et le traitement des
données statistiques.

Ce cours doit être compris comme une


introduction à….
4
A- Introduction : R et Statistique

5
Introduction
R est un système d’analyse statistique et graphique
créé par R. Ihaka et R. Gentleman1
•Logiciel gratuit téléchargeable

http://www.r-project.org/
•Également disponible sous forme commercialisée S-Plus
•Développé par une communauté de statisticiens rassemblés
dans le R Development Core Team
•Distribué pour Windows, Linux, Unix, Macintosh

1 6
Ikaha Ross, Gentleman Robert. 1996. R: a language for data analysis and graphics. J. Comput. Graph. Stat., 5: 299-314.
http://www.r-project.org/

Liens pour télécharger


(gratuitement) R, des
packages, de la doc,
etc…

Moteur de recherche

Documentation

7
•R peut être couplé à d’autres systèmes
d’analyse de données (système d’analyse
spatiale GRASS …)

Représentation graphique des données Analyse des structures spatiales

• Le principal inconvénient est un manque de


convivialité

8
Pour vous guider, vous disposez de nombreux sites d’aide
et d’exemples sur internet, par exemple :

http://pbil.univ-lyon1.fr/R/enseignement.html
http://zoonek2.free.fr/UNIX/48_R/all.html

En cas de difficultés, il est possible d’adresser vos


questions à la R help list
http://stat.ethz.ch/R-manual/
9
De nombreux tutoriels sont disponibles sur internet, par exemple :
« R pour les débutants », Emmanuel « An introduction to R », Venables et
Paradis al (en anglais)

D’autres sont disponibles sur le site de R-project :


http://cran.r-project.org (cliquer sur « Manuals » dans la
sous-partie « Documentation ») 10
Bienvenue dans R…

11
Bienvenue dans R…

12
• Il est indispensable avant tout travail dans R, de
spécifier le dossier de travail dans lequel se trouve le
(ou les) fichier(s) de données à analyser :

File → Change Dir… → sélectionner le dossier*


Ou pour la version française :
Fichier → Changer le répertoire courant… →
sélectionner le dossier*

• Pour vérifier que vous travaillez bien dans le bon


dossier, vous pouvez contrôler votre working
directory par la commande :
getwd() 13
* procédure pour PC. Quelques subtiles différences pour Macintosh
Adresse du répertoire de travail

14
Aide dans R
 À l’aide !
> help.start()

 Aide avec recherche par mots clés


> help.search("working directory")

 Aide spécifique à une fonction connue


> ? getwd

15
Pour obtenir l’aide sur une commande :
?nom_de_la_commande

Pour utiliser une commande :


nom_de_la_commande(argument1,argument2,…)
16
Sortez moi de là

17
Sauver votre travail
Dans R
1 Dans Tinn R 2.2. Sauver
sauver votre 2.1. votre historique de
script commande.

Sauver votre environnement de


travail cad tous les objets créés au
cours de votre travail. 18
R : un langage

19
Introduction
 R est constitué de :
 Langage orienté objet

 Fenêtre de commande pour envoyer des instructions


 Fenêtre graphique pour visualiser les résultats
 Système de modules ou ”packages” alimenté par la

communauté

 Large communauté d’utilisateurs et de développeurs

20
Structure de R

21
R pour programmer

22
Structure du langage
 On compte donc trois grands types
d’éléments structuraux :

 Les objets

 Les éléments de contrôle

 Les fonctions

23
Objets

24
Manipuler les objets
Les objets sont de plusieurs types
 character (ex : texte)
 logical (ex : booléen)
 factor (ex : variable qualitative)
 numeric (ex : variable quantitative)
 vector (ex : tableau de valeurs de même type sans
dimension)
 matrix (ex : tableau de valeurs de même type à 2
dimensions)
 array(ex: tableau de valeurs de même type à plus de 2
dimensions)
 data frame (ex: tableau de valeurs de types différents à 2
dimensions)
 list(ex: stockage de valeurs de plusieurs types
> ?class : une fonction très utile pour le type 25
Création d’objets de classe « numeric »
 Trois manières de créer un objet « numeric » ”x” de valeur 10

 On peut créer un autre objet ”y” à partir de l’objet ”x” :

26
Objets plus complexes
 Soit ”v” un vecteur contenant 6 entiers allant de 1 à 6

 La merveilleuse fonction ”seq()” :

27
Création d’objets de classe ”matrix”
 Soit ”m1” et ”m2” deux matrices 2*3 contenant les valeurs de ”v” :

28
Opérations matricielles
 Addition :

 Transposition :

 Multiplication :

29
Création d’objets de classe « logical »
 Booléens :

30
Les opérations logiques utiles dans R
 Quelques opérateurs logiques :

31
Liste : définition
Définition (objet list)
Une liste est une collection d’objets hétérogènes. Elle est définie par la
commande list(el1=, el2=, ...). Les éléments d’une liste peuvent
posséder un nom.

> list(c(1,2,3),c("robert","johnson"),matrix(rnorm(4),2,2))
[[1]]
[1] 1 2 3
[[2]]
[1] "robert" "johnson"
[[3]]
[,1] [,2]
[1,] 0.2913862 0.3303319
[2,] -1.4849716 2.4071609

32
Liste : définition
Définition (objet list)
Une liste est une collection d’objets hétérogènes. Elle est définie par la
commande list(el1=, el2=, ...). Les éléments d’une liste peuvent
posséder un nom.

> list(numero = c(1,2,3), noms = c("robert","johnson"), mat =


matrix(rnorm(4),2,2))
$numero
[1] 1 2 3
$noms
[1] "robert" "johnson"
$mat
[,1] [,2]
[1,] 1.4355363 -0.8544773
[2,] 0.6386084 1.9803265

33
Création d’objets de classe list
 Un objet liste, c’est comme une commode
avec plusieurs tiroirs :

34
Retourner aux valeurs dans les objets
 Pour ouvrir et modifier les objets dans R on utilise les
crochets ”[ ]” :

35
Facteurs
Définition
Un facteur est un vecteur de variables catégorielles.
Les niveaux du facteur peuvent être ordonnés ou
pas.

 Utilisation
Les facteurs s’utilisent pour catégoriser les
données d’un vecteur (ce qui s’avère très utile
pour la gestion des variables qualitatives).

un facteur est souvent associé à d’autres


vecteurs pour en définir une partition.

36
Création, manipulation des facteurs
 Création : la fonction factor
> factor(sample(1:3, 10, replace = TRUE))
[1] 3 3 1 2 1 2 3 1 1 1
Levels: 1 2 3
> factor(sample(1:3, 10, replace = TRUE), levels = 1:5)
[1] 3 1 2 2 3 2 1 2 2 1
Levels: 1 2 3 4 5
• Gestion : nlevels,levels,table
> x <- factor(sample(c("thesard", "CR", "MdC"), 15, replace = TRUE))
> cat(nlevels(x), "niveaux:", levels(x))

3 niveaux: CR MdC thesard

> table(x)
x
CR MdC thesard
4 8 3
37
Un exemple de facteur associé à un vecteur
Données
Chacun me donne son âge et son grade
> age <- c(25, 35, 32, 27, 32, 40, 26, 25, 26, 28,
30, NA, 36,30, 30)
> grd <- c("thd", "CR", "MdC", "thd", "thd", "MdC",
"MdC", "thd“, "thd", "MdC", "CR", "MdC", "CR", "thd",
"thd")
Question : nombre d’individus par catégorie ?
> table(grd)
grd
CR MdC thd
3 5 7

38
La fonction tapply
Un autre point fort de R
Utilisation
Applique une fonction sur un vecteur partitionné en
groupes.

 Question : âge moyen / écart-type par catégorie ?


> tapply(age, grd, mean, na.rm = TRUE)
CR MdC thd
33.66667 31.50000 27.85714
> tapply(age, grd, sd, na.rm = TRUE)
CR MdC thd
3.214550 6.191392 2.794553
39
Objet dataframe
Définition (objet data.frame)
 C’est une liste à laquelle on impose
certaines contraintes, afin de rassembler
vecteurs et facteurs sous la forme d’un
tableau de données.
 Pratiquement, un tableau de données est
une matrice dont les colonnes sont de mode
différent,
 C’est l’objet idéal pour la manipulation de
données(forcez-vous à l’utiliser).

40
Création de tableau de données
 Syntaxe
On peut spécifier le nom des colonnes par le vecteur row.names ou
directement comme pour une liste :
data.frame(e1=,e2=,...,row.names=)
> age <- c(25, 35, 32, 27, 32, 40, 26, 25, 26, 28, 30, NA, 36, 30, 30)
> grd <- c("thd", "CR", "MdC", "thd", "thd", "MdC", "MdC", "thd",
"thd", "MdC", "CR", "MdC", "CR", "thd", "thd")
> sex <- factor(sample(c(rep("M", 3), rep("F", 12))))
> donnees <- data.frame(age = age, grade = grd, sexe = sex)
> head(donnees)
age grade sexe
1 25 thd F
2 35 CR M
3 32 MdC F
4 27 thd F
5 32 thd F
6 40 MdC F

41
Manipulation du tableau de données
 Comme une liste !
 les commandes attach() / detach placent / ôtent
les éléments du tableaux de données dans
l’itinéraire de recherche.
> donnees$age
[1] 25 35 32 27 32 40 26 25 26 28 30 NA 36 30
30
> attach(donnees, warn.conflicts = FALSE)
> grade
[1] thd CR MdC thd thd MdC MdC thd thd MdC
CR MdC CR thd thd
Levels: CR MdC thd
> detach(donnees)

42
Travailler avec les tableaux de données
 beaucoup de fonctions prédéfinies (by, tapply, etc.)
> summary(donnees)
age grade sexe
Min. :25.00 CR :3 F:12
1st Qu.:26.25 MdC:5 M: 3
Median :30.00 thd:7
Mean :30.14
3rd Qu.:32.00
Max. :40.00
NA's : 1.00
> attach(donnees, warn.conflicts = FALSE)
> by(age, sexe, mean, na.rm = TRUE)
> by(age, grade, mean, na.rm = TRUE)
43
Programmation en langage R

44
Rappels

1. Un éditeur de texte
(vos fonctions / scripts)

2. Un terminal avec R
(tester, sourcer)
« Sourcer »
source("un_script.R") : exécute la série
de commandes de mon_script.R
source("mes_fonctions.R") : charge le
contenu (les fonctions) de
mes_fonctions.R
45
Les principaux éléments de contrôle
 Il existe trois grands éléments de contrôle
permettant de manipuler les objets et les fonctions
de manière à programmer une ou des tâches :
 For
 If
 While
 Tous les trois s’utilisent à peu prés de la même
manière et peuvent se combiner les uns aux autres
de manière imbriquée :

for/if/while (conditions)
{
liste d’instructions
}

46
Structure de contrôles
Regrouper les expressions : Syntaxe
{expr_1; expr_2; ...; expr_n }
ou
{
expr_1
...
expr_n
}
Remarques sur les groupes
o La dernière valeur du groupe est retournée ;
o Un groupe d’expressions peut être passé à une fonction,
réutilisé dans une expression plus grande, etc.
47
Exécution conditionnelle : if,if/else,ifelse
 Syntaxe
if (condition) {
expr_1
} else {
expr_2
}
ou
ifelse(condition, a, b)
Remarques
o condition est une valeur logique : penser à &,|,!, . . .
o le else est optionnel,
o elseif permet d’imbriquer les conditionnements.

48
Application : calcul du prix TTC
#demander le prix ht
print("saisir prix ht")
ht <- scan()
#type de produit
print("type de produit : 1 - luxe, autre -
normal")
typprod <- scan()
#calcul du prix ttc
49
#calcul du prix ttc
if (typprod == 1)
{
tva <- 0.33
} else
{
tva <- 0.196
}
#calcul
ttc <- ht * (1 + tva)
#affichage
print(paste("prix ttc = ",as.character(ttc)))

50
Exécution répétée: boucle for
 Syntaxe
for (var in set) {
expr(var)
}
ou
for (var in set)
expr(var)
à fuir pour éviter les effets de bords sournois !
Remarques sur la boucle for
o var est la variable incrémentée,
o set est un vecteur définissant les valeurs
successives,
o lente comparée aux opérateurs matriciels.
51
Application : calcul de la somme
# A faire : somme S = SUM_i i^2
# saisie de n
n <- scan()
# initialisation de la somme
s <- 0.0
# boucle for
for (i in 1:n){
s <- s + i^2
}
print("la somme = ")
print(s) 52
Exécution répétée : boucles while et repeat
 Syntaxe
while (condition) {
expr
}
ou
repeat {
expr
}
 Remarque
o Comme pour for, éviter les imbrications sources de
lenteur.
53
Application : calcul de la somme
 # A faire : somme S = SUM_i i^2
 # saisie de n
 n <- scan()
 #initialisation de la somme et de l’indice
 s <- 0.0
 i <- 1
 #boucle « tant que »
 while (i < n){
 s <- s + i^2
 i <- i + 1 }
 #affichage des résultats
 print("la somme = ")
54
Contrôle des boucles : break, next
Exemples d’utilisation
repeat {
expr
if (condition) {break}
}
ou
while (condition1){
expr_1
if (condition2) {next}
expr_2
}
Remarque
 break est la seule manière d’interrompre une boucle
repeat.
55
Fonctions

56
Les fonctions
 Syntaxe
nom_de_la_fonction <- function(arg1,arg2, ...) {
expression
return(var)
}
 Remarques
o return peut être omis (à éviter) : dans ce cas la
dernière valeur calculée est renvoyée.
o peut être tapée directement dans l’interpréteur ou
dans un fichier externe functions.R, chargé par
source.
57
Un exemple simple
 Moyenne empirique d’un vecteur
Avec suppression des valeurs manquantes !
moyenne <- function(x) {
## suppression des valeurs manquantes
x.not.na <- x[!is.na(x)]
## moyenne empirique
resultat <- sum(x.not.na) / length(x.not.na)

return(resultat)
}
 Tests
> moyenne(rnorm(100))
[1] 0.06792586
> moyenne(c(1, -5, 3, NA, 8.7))
[1] 1.925 58
Les arguments, leurs valeurs par défaut
 Propriétés
o les arguments peuvent être passés dans le désordre
s’ils sont nommés : var=object,
o on peut définir une valeur par défaut pour n’importe
quel argument lors de la définition de la fonction :
var=10.
o en cas de sorties multiples, les sorties doivent être
renvoyées sous forme de liste.
 Remarques
o Les valeurs par défaut rendent la lecture des fonctions
beaucoup plus aisée pour l’utilisateur : imposer peu
d’arguments obligatoires.
o Les noms des éléments de la liste définie dans la
fonction sont conservés à l’extérieur de la fonction.
59
Un exemple (un tout petit peu) plus avancé
 Résumé numérique d’un vecteur
> resume <- function(x, na.rm = TRUE, affiche = FALSE) {
+ mu <- mean(x, na.rm = na.rm)
+ s2 <- var(x, na.rm = na.rm)
+ if (affiche) {
+ cat("\nMoyenne:", mu, "et variance:", s2)
+}
+ return(list(moyenne = mu, variance = s2))
+}

> out <- resume(rnorm(100))


> out$variance
[1] 0.7163688
> out <- resume(affiche = TRUE, x = rexp(100, 0.5))
Moyenne: 1.896648 et variance: 4.912842 60
« Les fonctions sont nos … amies »

61
Quelques fonctions usuelles
• read.table()
• apply()
• rnorm()
• cor() • sample()
• head() • sum()
• length() • str()
• match()
• table()
• var()
• mean()
• which()
• write.table()
62
Et toujours de l’aide

63
Manipulation des données avec R

64
Importation des données
 Cas d’un fichier .csv
La fonction d’importation dépend des
caractères utilisés pour séparer les colonnes
et pour séparer les décimales.
 Format européen : read.csv2()
o colonnes séparées par un point-virgule
o décimales par une virgule,

data <- read.csv2("chemin/fichier.csv")

65
Importation des données
Cas d’un fichier .csv
Autres formats : read.csv()
o colonnes séparées par une virgule
o décimales par un point,
data <- read.csv("chemin/fichier.csv")

66
Importation des données
 Cas d’un fichier .txt
Dans ce cas, les colonnes sont généralement
séparées par une tabulation.

Dans ce cas, en fonction du caractère


employé pour séparer les décimales, on a les
fonctions read.delim() et read.delim2().

67
Importation des données
 Cas des fichiers .fwf et .tsv : read_*()
On a respectivement les fonctions read_.fwf()
et read_.tsv() ou read_table() de « reader».

68
Importation des données
 Cas des fichiers .xlxs
Si les données sont au format. xlsx, on utilise
la fonction read.xlxs() du package xlsx.

 Cas des fichiers SPSS ou Stata


Le package foreign dispose de deux
commandes permettant de charger des
fichiers enregistrés au format SPSS (fichier
.sav) ou Stata (fichier .dta) : read.spss() et
read.dta().
Il est nécessaire de “charger le package”
o library(foreign)
69
Création et manipulation de fichier
Name_FirstName <-c("Smith_Emily", "Jonhson_Mikael", "Williams_Ashley", "Jones_Alex",
"Brown_Katie", "Davis_John","Miller_Megan", "Wilson_Matthew", "Moore_Grace", "Taylor_Jack")
Sex <- c("F", "M","F", "M","F", "M","F", "M","F", "M")
Age <- c(NA, 253L,38L, 15L, 79L, 56L, 63L, 19L, 24L,-1L)
Height <- c(1.68, 1.93, 1.55, NA, 1.63, 1.70, 1.50, 1.87, 1.52, 2.15)
Hair <- c("Blond", "Brown", "Brown", "Other", "Blond", "Other", NA, "Brown", "Blond", "Brown")
Blue_Eye <- c(1,0,0,0,1,1,0,0,0,0)
Brown_Eye <- c(0,1,1,0,0,0,1,0,1,0)
Other_Eye <- c(0,0,0,1,0,0,0,1,0,1)
people <- data.frame (Name_FirstName=Name_FirstName,
Sex =Sex ,
Age=Age,
Height=Height,
Hair=Hair,
Blue_Eye=Blue_Eye,
Brown_Eye=Brown_Eye,
Other_Eye=Other_Eye
) 70
Création et manipulation de fichier
Quelques fonctions utiles :
Pour vérifier l’importation : head(), tail()
head(people,7)
tail(people,3)
Pour contrôler la structure des données : str()
Elle permet de connaître:
 le format des données
 les dimensions du jeu de données
 le nom des variables le format de ces variables

 Remarque : `stringsAsFactor = FALSE` permet


d’éviter que les chaines de caractères soient converties
en variables catégorielles dans R. 71
Gestion des problèmes de structure avec tidyverse

1- Séparer une variable en deux colonnes avec separate()

Fonction : separate()

library(tidyverse)
people <- people %>%
separate(Name_FirstName,c("Name", "FisrtName"))

La fonction inverse est la fonction unite().


72
Gestion des problèmes de structure avec tidyverse
2- Séparer les valeurs d'une colonne en deux lignes
Soit le dataframe enfant ci-dessous :
FirstName <-c("Emily", "Mikael", "Ashley", "Alex", "Katie", "John")
Children <- c("1B/0G","1B/2G", "0B/2G","3B/2G", "1B/1G",
"1B/5G" )
enfant <- data.frame(FirstName ,Children)

La colonne “Children” indique le nombre de


garçons (B) et celui de filles (G)
La fonction separate_rows() permet de créer des
lignes (une pour les garçons et une pour les filles)
enfant <- enfant %>%
separate_rows(Children, sep="/") 73
Gestion des problèmes de structure avec tidyverse
2- Modifier le nom des variables
On peut facilement modifier le nom des variables
en utilisant la fonction name()

Exemple : names(people)[2] <- "Prenom"

3- Gestion des valeurs manquantes


 Recherche des valeurs manquantes : summary() ou
df_status()(package `funModelling`).
 Supprimer les lignes comportant des NA: na.omit()
people_sans_NA <- na.omit(people)
summary(people_sans_NA)
74
Gestion des problèmes de structure avec tidyverse
3- Gestion des valeurs manquantes
 Remplacer les NA : replace_na()
Exemple :
people_rep <- people %>%
mutate(Height=replace_na(Height,mean(Height, na.rm=TRUE)))
4- Identification des valeurs aberrantes
 Les valeurs numériques : summary()
 Visualisation avec le tableur Rstudio : view() ou clic sur
l’objet dans Environnement et trier les valeurs
 Visualisations en construisant les graphiques
5- Identification les outliers : boxplot.stat()
outlier_age <- boxplot.stats(people$Age)$out
Et l’indice : outlier_idx <- which(people$Age %in% c(outlier_age)) 75
Manipulation des données catégorielles
1. La fonction as.factor()
Soit la base de données Melanoma qui contient les données de
patients atteints de Mélanome malin.
 library(MASS)
 head(Melanoma)
 str(Melanoma)
Transformer les variables status, sex et ulcer en facteurs
o Melanoma$status <- as.factor(Melanoma$status)
o Melanoma$sex <- as.factor(Melanoma$sex)
o Melanoma$ulcer <- as.factor(Melanoma$ulcer)
o str(Melanoma)

76
Fonctions essentielles de dplyr (Tidyverse)
select() : selectionne et éventuellement
renomme des variables

filter(): crée un dataframe avec les lignes


satisfaisant la condition.

arrange(): permet de trier des observations

mutate() : ajoute de nouvelles variables

summarise(): résume
77
TP- Utilisation du package « dplyr »
Base de données covid-19.csv

La base contient les données collectées entre


le 20 janvier et le 1er juin 2020.

On désire déterminer les trois pays les plus


touchés par la pandémie à cette date

78
Les variables
1. `Date`: Date
2. `Continent_Name`: Continent names
3. `Two_Letter_Country_Code`: Country Codes
4. `Country_Region`: Country names
5. `Province_State`: States/province names; value is
`All States` when state/provincial level data is not
available
6. `positive`: Cumulative number of positive cases
reported.
7. `active`: Number of actively cases on that day
8. `hospitalized`: Cumulative number of hospitalized
cases reported.
79
Les variables
9. `hospitalizedCurr`: Number of actively hospitalized cases
on that day.
10. `recovered`: Cumulative number of recovered cases
reported.
11. `death`: Cumulative number of deaths reported.
12. `total_tested`: Cumulative number of tests conducted.
13. `daily_tested`: Number of tests conducted on the day; if
daily data is unavailable, daily tested is averaged across
number of days in between.
14. `daily_positive`: Number of positive cases reported on
the day; if daily data is unavailable, daily positive is averaged
across Snumber of days in.

80
TP- manipulation de la base covid-19
Pour cela:
1- Importer la base de données
2- Combien d’observations et de variables compte la base?
3- Explorer la base en affichant les premières et les dernières
lignes de la base
4- Créer une variable col_vectors contenant les noms des
colonnes de la base
5- Afficher une description de la base à l’aide de la fonction
glimpse() du package tibble.

81
TP- manipulation de la base covid-19

6- En explorant la base, vous vous rendez compte que les


informations collectées concernent les pays et parfois des
Etats(variable ‘Province_state’).

Nettoyer la base en gardant uniquement les informations


concernant les pays, puis enlever cette colonne de la base à
l’aide de la fonction filter() du package «dplyr »

7- A l’aide de la fonction groupby() regrouper les données


par pays et calculer le ratio

82
Solution

covid_df_all_states <- covid_df %>%


filter(Province_State == "All States") %>%
select(-Province_State)

covid_df_all_states_daily_sum <- covid_df_all_states_daily %>%


group_by(Country_Region) %>%
summarise(tested = sum(daily_tested),
positive = sum(daily_positive),
active = sum(active),
hospitalized = sum(hospitalizedCurr)) %>%
arrange(desc(tested))

covid_df_all_states_daily_sum 83
Représentations graphiques

84
Importer un fichier
fonction chemin

85
Variables qualitatives – diagrammes à bandes

> barplot(table(smp.c$prof)

86
Variables qualitatives – camembert

> pie(table(smp.c$prof)

87
Variables quantitatives continues - histogramme
> hist(smp.c$age)

88
Variables quantitatives continues - histogramme
> hist(smp.c$age, col=‘’grey ’’,
> hist(smp.c$age) main=‘’’’, xlab=‘’age ’’)

89
Variables quantitatives – bâtons – boites à moustaches

>boxplot(smp.c$age,xlab=‘’age’’)

90
Variables quantitatives – bâtons – boites à moustaches

>boxplot(smp.c$age,xlab=‘’age’’)

91
Variables quantitatives – bâtons – boites à moustaches

>boxplot(smp.c$age ~smp.c$rs,ylab=‘’age’’,xlab=’’recherche de
sensation’’)

Interprétation
La distribution en âge est
légèrement supérieure
quand on a un faible
niveau de sensation que
lorsqu’on a un niveau de
sensation élevé.

92
Distribution conjointe de 2 variables quantitatives – diagramme
cartésien
>plot(smp.c$age , smp.c$n.enfant)

93
Distribution conjointe de 2 variables quantitatives – diagramme
cartésien
>plot(jitter (smp.c$age) , jitter(smp.c$n.enfant))
On évite ainsi la superposition des points à l’aide d’un décalage

94

Vous aimerez peut-être aussi