TD1 L3
TD1 L3
TD1 L3
T. D. no 1
Initiation au logiciel libre R
1
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
5 Objectif de ce T.D.
Ce T.D. a pour objectif de vous montrer les commandes de base de R (ouverture,
fermeture, sauvegarde, aide,. . .) et de vous faire manipuler des tableaux de données
(saisie sous R, importation de fichier de données,. . .).
2
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
taper les commandes R. Une fois la commande tapée, vous devez toujours la valider
par la touche Entrée.
[1] 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
[20] 142 143 144 145
3
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
Faites défiler le texte avec la touche « Entrée » ou « Flèche vers la bas ». Une fois
arrivé à « END », tapez q. Grâce à cette aide, il suffit de retenir le nom de la
commande, mais pas toute la syntaxe.
Vous pouvez rappeler les commandes déjà exécutées (pendant cette séance de T.D.)
en utilisant la touche « Flèche vers le haut » du clavier.
7.1 Affectation
Un objet peut être créé avec l’opérateur « assigner » ou « affecter » qui s’écrit <- :
> n<-15
> N<-12
Pour vérifier le contenu d’un objet, taper son nom, par exemple pour n :
> n
[1] 15
Remarques très importantes :
• R différencie les lettres minuscules et les lettres majuscules.
• Quand vous assignez un nom à un objet, l’affichage de cet objet n’est plus
automatique, il faut le demander en tapant simplement le nom donné à l’ob-
jet.
• Le signe underscore a la même fonction que le signe <- ; il est donc déconseillé
d’utiliser le signe underscore dans le nom des variables.
• Enfin, le signe = marche également pour faire des affectations. Essayez :
> a=3
> a
3
Choisissez donc la manière que vous voulez pour affecter mais soyez prudent !
7.2 Suite
Premier exemple. Vous souhaitez créer la suite d’entiers de 1 à 12 :
Première façon
> suite <- 1:12
> suite
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Seconde façon
La fonction seq() crée une suite (séquence) de nombres et possède trois arguments :
a) from
b) to
4
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
c) by.
> seq(from=1,to=12,by=1)
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Remarque : vous pouvez aussi écrire simplement :
> seq(1,12,1)
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Second exemple. Vous souhaitez créer un vecteur formé par les éléments d’une
suite arithmétique de premier terme 20, de dernier terme 40 et de raison 5. Vous
pouvez encore utiliser la fonction seq() :
> seq(from=20,to=40,by=5)
[1] 20 25 30 35 40
5
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
6
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
vecteur.
Exemple : pour afficher le troisième élément de la serie1 :
> serie1[3]
[1] 5.33
Exemple : pour afficher le troisième et le quatrième éléments de la serie1 :
> serie1[3:4]
[1] 5.33 -26.50
Remarque : ici on utilise le symbole : car le troisième et le quatrième éléments de
la serie1 se suivent !
7
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
> y[x>4]
[1] 0.7 1.0 3.5
8
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
Premier exemple :
Vous créez une variable donnees par :
> donnees<-c(1,2,3)
Si vous voulez qu’un nouveau vecteur contienne deux fois le vecteur donnees, alors
vous écrirez :
> rep(x=donnees,times=2)
Deuxième exemple :
Vous pouvez également demander qu’un vecteur contienne 50 fois la valeur 1 :
> rep(1,50)
Troisième exemple :
Enfin, vous voulez qu’un vecteur contienne 4 fois la chaîne de caractères chien :
> rep("chien",4)
Seconde façon :
Une autre façon de nommer les composantes d’un vecteur est de définir un vecteur
formé de chaînes de caractères, puis utiliser la fonction names :
> matiere<-c("Anglais","Informatique","Biologie")
> matiere
> note <- c(12,19.5,14)
> note
[1] 12.0 19.5 14.0
> names(note)<-matiere
> note
9
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
10
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
[1] TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
FALSE
> suite <= 6 & suite >= 6
[1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
FALSE
> suite <= 6 && suite >= 6
[1] FALSE
> suite <= 6 | suite >= 6
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> suite <= 6 || suite >= 6
[1] TRUE
Enfin voici pour mémoire les tables de vérité des opérateurs logiques. Celles-ci ex-
plicitent également le comportement des opérateurs en cas de valeurs manquantes.
11
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
12
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
> V1<-tab$V1
> V2<-tab$V2
Si vous avez spécifié le nom des variables dans la première ligne de votre fichier
de données (comme dans le fichier table2.txt), vous devez l’indiquer par l’option
header=TRUE ou header=T :
> read.table("table2.txt",header=T)
Par défaut, R lit la première ligne comme une ligne de données et nomment les
colonnes sous la forme V1, V2, . . .(comme pour table1.txt).
Par défaut, on utilise un point (.) pour les décimales. Mais si les décimales sont
notées par une virgule dans votre fichier de données (comme dans table3.txt), il faut
le spécifier par :
> read.table("table3.txt",dec=",")
Par défaut, on utilise un espace pour séparer les valeurs appartenant à différentes
colonnes. Mais si les colonnes sont séparées par un point virgule dans votre fichier
de données (comme dans table4.txt), il faut le spécifier par :
> read.table("table4.txt",sep=";")
Pour ouvrir un fichier de données sans avoir à indiquer son emplacement en utilisant
une boîte de dialogue conviviale :
> read.table(file.choose())
Enfin la plupart des formats de fichiers sont connus par R.
Commençons avec les fichiers .csv. Il en existe deux types : anglo-saxon avec un
"." comme séparateur décimal et une "," comme séparateur de colonne et français
avec une "," comme séparateur décimal et un ";" comme séparateur de colonne. Le
premier se lit avec l’instruction
> read.csv(file.choose())
et le second avec l’instruction
> read.csv2(file.choose())
10 Fichiers scripts
Il est souvent plus pratique de composer le code R dans une fenêtre spécifique du
logiciel : la fenêtre de script.
Les entrées "Nouveau script" ou "Ouvrir un script" permettent de créer un nouveau
script de commandes R ou d’accéder à un ancien script sauvegardé lors d’une session
précédente d’utilisation du logiciel.
Pour exécuter des instructions à partir de la fenêtre de script il suffit de procéder
par copier-coller ou de se servir de raccourci clavier "Ctrl+R".
Pour sauvegarder un script, il suffit, lorsque la fenêtre de script est active, de sélec-
tionner l’entrée "Sauver" du menu "Fichier".
13
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
Fonction Description
q() Quitte le logiciel
?commande Demande la fiche de documentation de la commande
s < −valeur Initialise la variable s avec la valeur. Exemple : n<-5
n:m Crée une suite de nombres entiers de n à m.
seq(n, m, i) Crée une suite de nombres de n à m en incrémentant par i
Exemple : seq(2,4,0.5) produit la suite 2, 2.5, 3, 3.5, 4
c(s1 , s2 , ..., sk ) Crée une suite en collant les s1 , s2 , ..., sk dans l’ordre.
Exemple : c(2:5,7,seq(8,9,0.5)) produit 2,3,4,5,7,8,8.5,9
rep(s, n) Crée une suite contenant n fois n .
Exemple : rep(c(1,2,3),2) donne 1,2,3,1,2,3
scan() Saisir "au clavier" un jeu de données numériques
s[I] Crée une suite composée des éléments de la suite s indexées par I. Ici I
peut être de la forme :
I est entier. Exemple : s[3] renvoie le 3ème élément de s
I est une suite. Exemple : s[3:5] renvoie les 3e, 4e et 5e éléments de s
I est une condition. Exemple : s[t>3] renvoie les éléments de la suite s
correspondants aux éléments de la suite t qui sont supérieurs à 3
s[−I] Crée une suite composée des éléments de la suite s qui sont
complémentaires à ceux indexés par I.
mode(s) Affiche le mode (numérique, caractère,. . .) de la variable s
length(s) Affiche le nombre d’éléments contenus dans la variable s
names(s) Renvoie les noms des éléments de s. Si s est une table, renvoie les
noms des colonnes.
Exemple : names(s)<-nom renomme les éléments de s en utilisant
les valeurs de la suite nom.
sort(s) Trier les composantes d’un vecteur par ordre croissant
rev(sort(s)) Trier les composantes d’un vecteur par ordre décroissant
file.choose() Sélectionner un fichier stocké sur l’ordinateur
read.table read.table("file") - lit le fichier de données file ne contenant pas
les noms des variables en première ligne.
read.table("file",header=T) - lit le fichier de données file
contenant les noms des variables en première ligne.
Exemple : t <- read.table$("table.txt",header=T)
read.csv read.csv("file") - lit un fichier de données file au format CSV
tab$col Renvoie la suite composée des éléments de la colonne col de la table tab.
Exemple : e<-amis$email initialise la variable e avec les valeurs de
la colonne email de la table amis.
14
Myriam et Frédéric Bertrand L3 Mathématiques - Étude de cas - 2017/2018
12 Exercices
Exercice 1
1. Créer le vecteur x=(101;102;...;112).
2. Créer un vecteur de longueur 12 formé de 4 fois la suite de nombres (4;6;3).
3. Créer un vecteur composé de huit 4, de sept 6 et de cinq 3.
Exercice 2
1. Saisir la variable poids contenant les 15 valeurs suivantes :
28; 27.5; 27; 28; 30.5; 30; 31; 29.5; 30; 31; 31; 31.5;
32; 30; 30.5.
2. Saisir la variable poids1 contenant les 5 valeurs suivantes :
40; 39; 41; 37.5; 43.
3. Sans refaire de saisie, créer la variable nouveau.poids contenant 20 valeurs
(les 5 valeurs de poids1 répétées 2 fois et les 10 dernières valeurs de poids).
4. Enregistrer, dans votre répertoire de travail, la variable nouveau.poids dans
une feuille nommée "Nouveau Poids" du classeur Excel "Poids.xls".
Exercice 3
1. Créer le vecteur nom contenant les noms de 10 personnes.
2. Créer le vecteur age contenant l’âge des 10 personnes précédentes (entre 20
et 60 ans). Les noms des personnes seront utilisés comme légende pour le
vecteur age.
3. Créer le vecteur poids contenant le poids des 10 personnes (entre 50 et 100
kg) en utilisant à nouveau le nom des personnes comme légende pour ce
vecteur.
4. Même chose pour le vecteur taille contenant la taille des 10 personnes.
5. Créer le vecteur poids.lourds contenant le poids des personnes de plus de
80 kg.
6. Créer le vecteur taille.poids.lourds contenant la taille des personnes de
plus de 80 kg.
7. Créer le vecteur taille.vieux.poids.lourds contenant la taille des per-
sonnes de plus de 80 kg et âgées de plus de 30 ans. Pour répondre à cette
question, vous pourrez utiliser le connecteur logique ET dont la syntaxe est
donnée ci-dessus ou dans l’aide sur opérateurs logiques accessible en tapant
l’instruction ?Logic.
15