Académique Documents
Professionnel Documents
Culture Documents
ET MANIPULATION D'OBJETS
Manipulation d’objets
Types d’objets et classes
Boucles et fonction
2
Qu’est-ce que R ?
3
Rstudio = interface
barre de menu
boutons
graphiques packages
console
invite de commande
4
Les packages
Packages
http://cran.r-project.org/web/packages
5
Les packages
~ 19708 packages
6
Les packages
Pour télécharger un package :
7
Les packages
8
Les packages
Pour télécharger le manuel d’un package :
9
Aide sur R
Aide en ligne :
?mean ou help(mean)
Help.search("mean" ) Forum :
http://forums.cirad.fr/logiciel-R/
Sites internet :
http://www.duclert.org/Aide-memoire-R/Le-langage/Introduction.php
http://cran.r-project.org/doc/manuals/R-intro.pdf
http://cran.r-project.org/doc/contrib/Paradis-rdebuts_fr.pdf (E. Paradis)
https://abcdr.guyader.pro/
http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_R.html
et bien d’autres…
10
Quelques livres sur R
11
R = calculatrice
respecter la casse !
12
Créer une variable
13
Créer une variable
environnement
14
Les objets sous R
Objets Définition
15
Les classes des objets
Classe Définition
logical FALSE/TRUE
16
Les classes des objets
17
Créer un vecteur
18
Manipuler un vecteur
19
Manipuler un vecteur
20
Autres manières de créer un vecteur
• Séquences
• Répétitions
21
Application 1
1. Démarrer Rstudio, créer un nouveau script dans l’onglet File
New File R Script et enregistrer ce script avec l’onglet File Save
As… en lui donnant le nom « Application1 » (l’extension du fichier
enregistré est .R).
4. Afficher :
- le deuxième élément de x ;
- les cinq premiers éléments de x ;
- les éléments de x strictement supérieurs à 15 ;
- tous les éléments de x sauf les éléments en positions 2, 4 et 10.
22
Créer un tableau de données (data.frame)
23
Manipuler une table de données
• Premières lignes du tableau :
24
Manipuler une table de données
• Créer un vecteur à partir d’une colonne de la table :
• Dimensions de la table :
• Statistiques résumées :
25
Manipuler une table de données
ou :
ou :
27
Manipuler une table de données
ou
28
Manipuler une table de données
29
Manipuler une table de données
30
Manipuler une table de données
31
Manipuler une table de données
32
Manipuler une table de données
Expressions équivalentes :
33
Manipuler une table de données
On peut grouper les vols selon leur mois dans le tableau fligths
34
Manipuler une table de données
35
Autres types d’objets
• matrix():
vecteur qui possède un argument supplémentaire (dim) qui est un
vecteur numérique de longueur 2 et qui définit les nombres de lignes
et de colonnes de la matrice
tableau à 2 dimensions
36
Autres types d’objets
• list():
Un objet qui peut contenir des éléments de différentes classes
37
Application 2
Le jeu de données Animals (disponible dans le package MASS) présente le poids du
corps moyen (en kg) et le poids du cerveau moyen (en g) de 28 espèces.
1. Charger le package MASS puis le jeu de données en utilisant la commande :
data(Animals).
2. Afficher les 10 premières lignes du jeu de données. Combien d’espèces ont été
étudiées ?
3. Créer une colonne avec le nom des animaux à partir des noms de lignes (le nom
des animaux est en anglais et correspond au nom des lignes). Utiliser la fonction
rownames. Quelle est la classe de cette colonne ? Modifier la classe de la colonne
en facteur. Afficher les données correspondant au chat.
4. Classer les espèces de la plus légère à la plus lourde en fonction du poids du corps.
5. Ajouter une ligne pour le fennec avec poids de cerveau de 10,2g et de corps de
1,7kg. Ajouter une colonne avec le poids de cerveau en kg.
6. Quelle est l’espèce avec le poids de cerveau le plus petit ? Quel est le poids de
cerveau moyen ? (utiliser les fonction min et mean)
38
Fonctions
39
Fonctions
40
Fonctions
41
Fonctions
43
Application 3
1. Créer une fonction qui permet de trouver le minimum et le maximum d’un
vecteur.
44
Eléments de programmation
45
Eléments de programmation
46
Eléments de programmation
• Boucles for : répète une action pour chaque élément d’un vecteur ou
d’une liste
pour (variable in séquence) {on fait ceci}
47
Eléments de programmation
• Boucle while : répète une action tant qu’une condition est vraie
tant que (condition) {on fait ceci}
48
Application 4
Le jeu de données cas_lyme comprend le nombre de cas de maladie de Lyme en
France par région en 2020. On souhaite ajouter une colonne qui classifie chaque
région comme ayant un risque faible (< 50 cas), moyen (de 51 à 100 cas) ou élevé
(plus de 100 cas).
region cas (pour 100 000 habitants)
1. Créer le tableau de données suivant : 1 50
2 19
3 24
4 260
5 110
6 149
7 49
8 24
9 99
10 364
11 32
12 66
13 52
49
Application 4
2. Créer une colonne risque initialisée avec des valeurs NA (pas de valeur).
3. Utiliser une boucle for pour parcourir chaque ligne de cas_lyme. Dans cette
boucle, utiliser une fonction if et else pour définir le risque par mois et région
en fonction du nombre de cas. Assurer vous de stocker le résultat dans la colonne
risque.
4. Une fois terminé, examiner quelques lignes de cas_lyme pour vous assurer que
le niveau de risque a été correctement défini.
5. Indiquer combien de régions sont classées comme risque faible, moyen et élevé
(utiliser la fonction table).
50
Synthèse
- package
- = ou <-
- c()
- vecteur[ ]
- dataframe[ , ]
- classe d’un objet
- function()
- if (condition) {on fait ceci} else {on fait cela }
- boucles for et while
51
Importer/exporter des données
52
Importer/exporter des données
53
Importer/exporter des données
54
Description rapide des données
55
Description rapide des données
Présentation rapide des fonctions graphiques de base sans le détail des arguments
approfondissement avec package ggplot2 jeudi pour mettre en forme les
graphiques
56
Application 5
1. Importer le jeu de données concernant les tiques à l’affût collectées en forêt de Sénart
entre 2005 et 2008 (2005_2008_tq_affut.csv). Prenez connaissance des informations dans ce
fichier de données en les décrivant rapidement. Modifier le type des colonnes si besoin.
2. Quel est le mois avec le maximum de tiques collectées dans la zone bois en 2007 ?
3. Est-ce que certaines colonnes comportent des données manquantes ? Si oui, lesquelles
et à quoi correspondent ces informations manquantes ? Essayer de croiser la ou les
colonne(s) avec des NA avec la colonne annee pour mieux comprendre.
4. Créer le tableau croisé entre la colonne habitat et stase pour obtenir le nombre de
collecte par habitat et stase des tiques.
6. Faire un camembert du nombre de tiques collectées par stase. Vous pouvez utiliser la
fonction tapply ou les fonctions du package dplyr.
7. Exporter un fichier csv comprenant les données de nymphes à l’affût uniquement, avec
les colonnes mois, annee, habitat, total, temperature et hygrometrie.
fichier ny_affut_senart.csv
57
Application 6
1. Importer le jeu de données concernant les résultats d’analyse en Borrelia burgdorferi sl
des tiques à l’affût (2007_2008_tq_affut_borr.csv). Prenez connaissance des informations
dans ce fichier en les décrivant rapidement. Modifier le type des colonnes si besoin.
2. La personne qui a fait la saisie de ces données indique qu’elle a fait une erreur de saisie
sur la date d’extraction de quelques tiques en 2008. Au lieu d’indiquer "2008-03-21", elle a
noté "2008-03-20". Corriger ces erreurs de saisie dans le fichier.
58
Application 6
5. Comparer la colonne ny_affut et n. Commenter et trouver une solution si besoin.
6. Calculer les prévalences des nymphes à l’affût par mois et habitat en 2007 à Sénart
(prev), avec seulement 1 chiffre après la virgule (fonction round).
8. Exporter le fichier obtenu sous le nom ny_2007_senart.csv (colonnes id, mois, annee,
habitat, ny_affut, temperature, hygrometrie, nb_pos, n, prev, mois2, date)
59
Application 7
1. Importer les données de Sénart correspondant aux captures de rongeurs en 2007
(2007_rongeurs.csv) et aux densités de rongeurs entre 2005 et 2010
(2005_2010_rongeurs_densite.csv). Prenez connaissance des informations dans ces fichiers de
données en les décrivant rapidement. Modifier le type des colonnes si besoin.
2. Nettoyage données :
- Conserver uniquement les données de densités de 2007 et supprimer la colonne se,
- Conserver uniquement les colonnes id, date, espece, sexe_F, sexe_M, poids, age_ad,
age_J, tique, ny_or, ny_cou, ny_corps, ny_oeil, ny_tot, ny_or, ny_cou, ny_corps,
ny_oeil, ny_tot, tq_tot, borrelia, esp_borr,
- Vérifier l’absence de données manquantes ou aberrantes dans ces colonnes. Corriger
si besoin.
4. Créer une colonne unique pour l’âge des rongeurs et une autre pour le sexe. Combiner les
variables age et sexe pour faire une variable age_sexe avec 4 catégories (jeune mâle, mâle
adulte, jeune femelle, femelle adulte). Il est possible qu’il y ait des NA, auquel cas il faudra ajouter
des catégories. Vous pouvez retirer les colonnes sexe_F, sexe_M et age_ad, age_J du
data.frame.
60
Application 7
5. Ajouter une colonne mois à partir de la colonne date. Utiliser la fonction substr ou
une fonction du package stringr. Vous pouvez faire une première étape en extrayant le mois
sous forme de chiffres de la colonne date puis utiliser la même astuce que dans l’application 6 pour
transformer en mois sous forme de caractères.
6. Ajouter les informations concernant les densités par espèce de rongeur et par mois en
2007 dans le fichier des captures.
- Pour faciliter la fusion des données, créer une colonne espece_mois,
- Supprimer les colonnes en double (garder une seule colonne),
- Renommer les colonnes si besoin.
61
Application 7
9. Quelle est l’espèce de Borrelia majoritaire pour chaque espèce de rongeurs ?
62
Synthèse
- getwd(), setwd()
- read.csv() et write.csv()
- summary()
- str()
- dim(), nrow(), ncol()
- plot(), hist(), boxplot(), barplot(), pie()
- tapply(), round()
- colnames(), substr()
- merge(), rbind(), cbind()
- as.Date() ou dmy() (package lubridate)
63