Tp1 : initiation au Langage R
Généralités
Ce TP 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
Démarrer R : On lance le logiciel R en cliquent sur l’icône R. Le symbole > signifie que R est prêt à
travailler. Il ne faut pas taper ce symbole au clavier car il est déjà présent en début de ligne sur R console.
C’est à la suite de ce symbole > que vous pourrez taper les commandes R. Une fois la commande tapée,
vous devez la valider par la touche « Entrée ».
Quitter R : Pour quitter R , vous utilisez la commande
>q()
La question Save workspace image ? [y/n/c] est posée : R propose de sauvegarder le travail effectué.
Trois réponses sont possibles : y (pour yes), n (pour no) ou c (pour cancel, annuler). En tapant c, la
procédure de fin de session sous R est annulée. Si vous tapez y, cela permet que les commandes tapées
pendant la session soient conservées en mémoire et soient donc rappelables (mais on nepeut pas les
imprimer).
Sauvegarder sous R : Si vous quittez R en choisissant la sauvegarde de l’espace de travail,deux
fichiers sont créés :
le fichier R.data, qui contient des informations sur les variables utilisées
le fichier R.history, qui contient l’ensemble des commandes utilisées.
Travailler avec R : Par exemple, tapez la commande suivante et validez :
>2 + 5
Le résultat s’affiche sous la forme :
[1] 7
Le chiffre 1 entre crochets indique l’indice du premier élément de la ligne 1, le second chiffre est le
résultat de l’opération demandée.
Page 1 sur 9
Rentrer des données sous R
Différentes commandes sont disponibles pour saisir des données sous R.
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
Remarque 1
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 de l’objet.
En fait, il faut remarquer que le signe = convient également pour faire des affectations. Essayez :
>a = 3
>a
[1] 3
Suite
Exemple 2.1 Si vous souhaitez créer la suite d’entiers de 1 à 12, on peut procéder de la sorte :
>suite <- 1 : 12
>suite
[1] 1 2 3 4 5 6 7 8 9 10 11 12
On peut également utiliser la fonction seq, qui crée une suite (séquence) de nombres et possède trois
arguments : from, to et by :
>seq(from = 1, to = 12, by = 1)
Page 2 sur 9
[1] 1 2 3 4 5 6 7 8 9 10 11 12
On peut également écrire plus simplement :
>seq(1, 12, 1)
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Exemple 2.2 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
Combinaison ou vecteur
Il est possible de saisir une série de valeurs numériques, caractères ou logiques.
Exemple 3.1 >serie1 <- c(1.2, 36, 5.33, -26.5)
serie1 est un vecteur numérique. Comment le savoir ?
Tapez la commande class ou mode sur le nom de votre vecteur. Nous reviendrons sur mode au
paragraphe suivant.
>serie1
[1] 1.20 36.00 5.33 -26.50
Que remarquez-vous ?
Exemple 3.2
>serie2 <- c("bleu", "vert", "marron")serie2 est un vecteur de chaînes de caractères.
>serie2
[1] "bleu" "vert" "marron"
Remarque 2 : Si un vecteur est composé de caractères et de nombres, le vecteur sera un vecteur de
chaînes de caractères. Quand les composantes du vecteur sont des chaînes de caractères, il est obligatoire
de les déclarer entre guillements, sinon R ne reconnaît pas les composantes du vecteur :
>serie2 <- c(bleu, vert, marron) Error : Object "bleu" not found
Exemple 3.3 >serie3 <- c(T, T, F, F, T)serie3 est un vecteur logique.
>serie3
TRUE TRUE FALSE FALSE TRUE
Page 3 sur 9
Exemple 3.4 Lors d’une étude statistique, il peut arriver que certaines données ne soient pas disponibles
: la donnée est dite manquante. Pour saisir une donnée manquante, il est conseillé d’utiliser le symbole
NA (Not Available), quelle que soit la nature de l’objet : numérique, caractère ou logique :
>serie4 <- c(1.2, 36, NA, -26.5)
La troisième valeur est manquante.
>serie4
[1] 1.20 36.00 NA -26.50
Mode et longueur
Les objets sont caractérisés par deux attributs : le mode et la longueur.
Le mode est le type des éléments d’un objet. Comme nous venons de le voir, un objet peut êtreune
valeur numérique, une chaîne de caractères ou une valeur logique.
La longueur est le nombre d’éléments de l’objet.
Par exemple, si vous saisissez une série d’observations obtenues sur un échantillon sous la forme d’un
vecteur, la longueur de ce vecteur correspondra à la taille de l’échantillon. Pour connaître le mode et la
longueur d’un objet, vous utiliserez les fonctions mode et length :
>mode(serie1)
[1] "numeric"
>mode(serie2)
[1] "character"
>mode(serie3)
[1] "logical"
>length(serie1)
[1] 4
>length(serie2)
[1] 3
>length(serie3)
[1] 5
Saisie au clavier d’un jeu de données
En utilisant la fonction scan(), la saisie d’une série de données peut paraître moins fastidieuse.
>jeu1 <- scan()
R vous redonne la main et vous pouvez taper les valeurs du jeu de données :1 : 1.2
Page 4 sur 9
2 : 36
3 : 5.33
4 : -26.5
5 : le premier retour-chariot après une chaîne vide met fin à la saisie.
>jeu1
[1] 1.20 36.00 5.33 -26.50
Éléments d’un vecteur
Il est possible de demander l’affichage d’un (ou de plusieurs) élément(s) d’un vecteur en spécifiant entre
crochets, en plus du nom du vecteur, l’indice de l’élément du vecteur. Par exemple, pour afficher
respectivement le troisième élément de serie1 et ses troisième et quatrième éléments, on utilisera :
>serie1[3][1] 5.33
>serie1[3 :4]
[1] 5.33 -26.50
Manipuler des vecteurs
Plusieurs opérations sont possibles sur les vecteurs : concaténation, extraction, calculs, répétition,
légende et tri.
Concaténer deux vecteurs
Il est possible de concaténer deux vecteurs (formés de variables de même type) pour en former un
nouveau :
>x <- c(2.3, 3.5, 6, 14, 12)
>y <- c(3.2, 5, 0.7, 1, 3.5)
>z <- c(x, y)
>z
[1] 2.3 3.5 6.0 14.0 12.0 3.2 5.0 0.7 1.0 3.5
Extraire des données d’un vecteur
Il est possible d’extraire des données d’un vecteur.
Utiliser un vecteur pour préciser le numéro d’ordre des composantes à extraire. Ainsi, pourextraire
les 2ème et 5èmes composantes du vecteur x :
>x[c(2, 5)]
[1] 3.5 12.0
Page 5 sur 9
L’utilisation du signe « tiret » permet de supprimer des composantes, par exemple poursupprimer les
2ème et 3ème composantes du vecteur x :
>x[-c(2, 3)]
[1] 2.3 14.0 12.0
Utiliser un vecteur formé de valeurs logiques. Par exemple, pour obtenir un vecteur necontenant que
les composantes supérieures à 4, vous pouvez utiliser la commande :
>x[x > 4]
[1] 6 14 12
Si vous disposez de deux vecteurs ayant le même nombre de composantes, vous pouvez demander à
afficher les valeurs de l’un pour lesquelles les valeurs de l’autre sont supérieures (ou inférieures) à une
certaine valeur. Par exemple, les vecteurs x et y sont composés de 5 valeurs. Vous pouvez demander à
extraire de y les valeurs de y pour lesquelles x est supérieur à 4 en utilisant la ligne de commandes
suivante :
>y[x > 4]
[1] 0.7 1.0 3.5
Faire des calculs sur les composantes d’un vecteur
R peut faire des calculs sur l’ensemble des composantes d’un vecteur :
>20 + x * 5
[1] 31.5 37.5 50.0 90.0 80.0
>(x + y) / 2
[1] 17.125 20.875 28.250 51.000 46.375
Remplacer des données dans un vecteur
Il est possible de remplacer certaines composantes d’un vecteur par de nouvelles valeurs.Considérons
une suite de valeurs numériques :
>x <- 1 : 10
Exemple 4.1 Si vous voulez remplacer le 3ème valeur de x par 35, vous utiliserez la ligne de commandes
suivante :
>x[3] <- 35
puis vous demanderez à R d’afficher le résultat
>x
[1] 1 2 35 4 5 6 7 8 9 10
Page 6 sur 9
Exemple 4.2 Si vous voulez remplacer la valeur 1 par la valeur 25, vous utiliserez alors la ligne
decommandes suivante :
>x[x == 1] <- 25
puis vous demanderez à R d’afficher le résultat
>x
[1] 25 2 35 4 5 6 7 8 9 10
Exemple 4.3 Si vous voulez remplacer toutes les valeurs supérieures ou égales à 5 par 20, vous utiliserez
la ligne de commandes suivante :
>x[x >= 5] <- 20
puis vous demanderez à R d’afficher le résultat
>x
[1] 20 2 20 4 20 20 20 20 20 20
Répéter les données d’un vecteur
La fonction rep admet deux arguments x et times et crée un vecteur où x est répété times fois.
Exemple 4.4 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)
Exemple 4.5 Vous pouvez également demander qu’un vecteur contienne 50 fois la valeur 1 :
>rep(1, 50)
Exemple 4.6 ou 4 fois la chaîne de caractères "chien" :
>rep("chien", 4)
Nommer les composantes d’un vecteur
Il est possible de donner un nom à chaque composante d’un vecteur.
Exemple 4.7 Le vecteur notes.Jean contient les notes obtenues par Jean en anglais, informatique et
biologie.
Première façon : vous pouvez utiliser la commande :
>notes.Jean <- c(anglais = 12, informatique = 19.5, biologie = 14) Affichez ensuite le vecteur
notes.Jean, on obtient le résultat suivant :anglais informatique biologie
12.0 19.5 14.0
Page 7 sur 9
Seconde façon : on peut nommer les composantes d’un vecteur en définissant un
vecteur forméde chaînes de caractères puis en utilisant le fonction names :
>matiere <- c("anglais", "informatique", "biologie")
>matiere
>note <- c(12, 19.5, 14)
>names(note) <- matiere
>note
anglais informatique biologie12.0 19.5 14.0
Remarque 3 : Pour supprimer les noms, on tapera la ligne de commandes :
>names(note) <- NULL
Trier les composantes d’un vecteur
Vous pouvez trier les composantes d’un vecteur par ordre croissant en utilisant la fonction
sort.Retour à l’exemple 4.7 :
>sort(note)
[1] 12.0 14.0 19.5
ou dans l’ordre décroissant :
>rev(sort(note)) [1] 19.5 14.0 12
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 et Ouvrir un script
permettent de créer un nouveauscript 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 dese servir de raccourci clavier « ctrl+R ».
Pour sauvegarder un script, il suffit, lorsque la fenêtre de script est active, de sélectionner
l’entréeSauver du menu Fichier.
Page 8 sur 9
Exercice 1
1. Pour commencer, on va utiliser R comme une calculatrice. Donc, cliquez dans la
fenêtre ’R Console’, tapez cette opération puis validez avec la touche enter :
>2+8
On remarque que R affiche le résultat sous la forme suivante :
[1] 10
En effet, le chiffre entre [ ] indique l’indice de l’élément 1 de la ligne 1, le deuxième
chiffre représente le résultat de l’opération demandée.
2. Tapez : 2*3
3. Poursuivez avec : a=10
a+8
4. Un nouveau objet peut être créé avec l’opérateur d’affectation » qui s’écrit <- :
Essayez ces lignes :
> x<-105
> X<-102
Afin de vérifier le contenu d’un objet donné, il suffit de taper son nom, vérifiez les
valeurs des variable x et X.
Que remarquez-vous ?
Exercice 2
On souhaite créer la suite d’entiers de 1 à 20 :
1. La première façon > suite <- 1:20 >
2. La seconde façon en utilisant la fonction prédifinie seq() crée une suite (séquence) de
nombres et possède trois arguments : a) from b) to 4 c) by.
3. donner une proposition plus simple.
On souhaite maintenant créer un vecteur qui se compose des éléments d’une suite
arithmétique de premier terme 50, de dernier terme 200 et de raison 5.
3. Comment faire ?
Page 9 sur 9