Vous êtes sur la page 1sur 45

Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Feuille de Travaux Pratiques no 1


Initiation à R
1 Introduction : Qu’est-ce-que R ?
• R est un logiciel permettant de faire des analyses statistiques et de produire
des graphiques.
• Nous allons utiliser R comme une boîte à outils pour faire des analyses sta-
tistiques.
• Mais R est également un langage de programmation complet. C’est cet aspect
qui fait que R est différent des autres logiciels statistiques.
• Les informations sur R sont disponibles sur la homepage du projet :
http://www.r-project.org/
C’est le premier résultat pour la recherche de la lettre R avec le moteur de
recherche google et la meilleure source d’informations sur le logiciel R. Vous
pourrez y trouver les différentes distributions du logiciel, de nombreuses bi-
bliothèques de fonctions et des documents d’aide.
• Enfin, R est un clône gratuit du logiciel S-Plus commercialisé par MathSoft
et développé par Statistical Sciences autour du langage S (conçu par les la-
boratoires BELL).

2 Comment se procurer le logiciel R ?


Le logiciel R est gratuit. La page officielle du logiciel est :
http://www.r-project.org/
Si vous avez un ordinateur à la maison, vous pouvez le télécharger à l’adresse :
http://cran.univ-lyon1.fr/

3 Remarques d’ordre général sur R :


• Bien sûr il existe une version française du logiciel R.
• R fonctionne avec plusieurs fenêtres sous Windows. En particulier, nous dis-
tinguons la fenêtre R Console, fenêtre principale où sont réalisées par défaut
les entrées de commandes et sorties de résultats en mode texte. À celle-ci
peuvent s’ajouter un certain nombre de fenêtres facultatives, telles que les fe-
nêtres graphiques et les fenêtres d’informations (historique des commandes,
aide, visualisation de fichier, etc...), toutes appelées par des commandes spé-
cifiques via la console.
• Le menu File ou Fichier contient les outils nécessaires à la gestion de l’es-
pace de travail, tels que la sélection du répertoire par défaut, le chargement
de fichiers sources externes, la sauvegarde et le chargement d’historiques de
commandes, etc.

1
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

• Le menu Edit ou Edition contient les habituelles commandes de copier-


coller, ainsi que la boîte de dialogue autorisant la personnalisation de l’appa-
rence de l’interface.
• Le menu Misc traite de la gestion des objets en mémoire et permet d’arrêter
une procédure en cours de traitement.
• Le menu Packages automatise la gestion et le suivi des librairies de fonctions,
permettant leur installation et leur mise à jour de manière transparente au
départ du site CRAN (Comprehensive R Archive Network)
http://cran.r-project.org/
ou de toute autre source locale.
• Enfin, les menus Windows ou Fenêtres et Help ou Aide assument des fonc-
tions similaires à celles qu’ils occupent dans les autres applications Windows,
à savoir la définition spatiale des fenêtres et l’accès à l’aide en ligne et aux
manuels de références de R.
• Ce qui est entré par l’utilisateur figure en rouge, et la réponse de R est en
bleu.
• Les nombres entre crochets au début de chaque ligne donnent l’indice du
premier nombre de la ligne.
• Quand deux vecteurs ne sont pas de même longueur, le plus court est recyclé.

4 Pour en savoir plus sur R


• Pour un public francophone, un point de départ est le manuel d’Emmanuel
Paradis, « R pour les débutants », 81 pages, qui a la particularité d’exister
également en version anglaise « R for Beginners ». Les deux documents sont
disponibles ici :
http://cran.r-project.org/
dans la rubrique « Documentation », sous-rubrique « Contributed ».
• Plusieurs milliers de pages d’enseignement en français de statistiques sous R
sont disponibles ici :
http://pbil.univ-lyon1.fr/R/

5 Objectif de ce T.P.
Ce T.P. a pour objectif de vous montrer les commandes de base de R (ouverture,
fermeture, sauvergarde, aide,. . . ) et de vous faire manipuler des tableaux de données
(saisie sous R, importation de fichier de données, opérations, . . . ).

6 Installer le langage R et ses packages


6.1 Installer le langage R
Ces premières instructions sont communes aux trois systèmes d’exploitation.

2
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

a) Rendez-vous sur le site https://www.r-project.org/.


b) Puis, à gauche sur la page d’accueil, vous trouverez un menu Download. Dans
ce menu, cliquez sur CRAN.
c) Choisissez un site miroir proche de chez vous.
d) Un encadré blanc intitulé Download and Install R doit apparaître sur votre
écran.
Remarque : le téléchargement de R n’est pas très long. En effet, sa taille est de
l’ordre de 86 Mo.
L’interface graphique du langage est très similaire d’un système d’exploitation à
l’autre.

6.2 Installer des packages du langage R


Qu’est ce qu’un package ? Un package est une compilation d’outils. Certains sont
déjà présents dans l’installation de base de R. En effet, lors de l’installation de R, un
dossier library s’est créé par défaut. Il comprend les packages de base de R. Mais
d’autres packages qui vous seront utiles pour réaliser vos analyses statistiques ou de
data science seront à télécharger puis à installer.
Pour les trois environnements Linux, MacOS X et Windows.
a) Reprenez la procédure de téléchargement de R vue à la section « Installer le
langage R ».
b) Cette fois-ci au lieu de cliquer sur Windows, MacOS X ou Linux, cliquez sur
packages dans la liste intitulée Source Code for all Platforms.
c) Une page apparaît sur laquelle est indiqué le nombre de packages actuellement
disponibles sur le CRAN (18 155 début septembre 2021). Pour obtenir la liste
des packages rangés dans l’ordre alphabétique, cliquer sur Table of available
packages, sorted by name.
d) La liste des packages apparaît alors.
e) Puis cliquez sur le package dont vous avez besoin.
f) Une brève description du package apparaît suivie d’une liste proposant plu-
sieurs versions du package. La première (.tar.gz) est celle contenant le code
source du package et ne sert a priori qu’aux utilisateurs de Linux. La (.tgz)
est destinée aux utilisateurs de Mac OS X et la troisième (.zip) aux utilisa-
teurs de Windows.
g) Sous Mac OS X et Windows, il faut alors démarrer l’interface graphique de
R.
h) Sous Mac OS X, allez dans le menu Packages et utilisez le Package Manager.
Indiquez alors à R le fichier .tgz que vous venez de télécharger.
i) Sous Windows, allez dans le menu Packages et choisissez Installer depuis un
fichier .zip. Indiquez alors à R le fichier .zip que vous venez de télécharger.

3
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Remarque : vous verrez bientôt comment installer très facilement les packages
disponibles sur le site du CRAN directement depuis R.
Lorsque vous aurez besoin de packages qui ne sont pas installés par défaut pour
réaliser les analyses statistiques qui vous seront demandées dans les exercices, cela
vous sera signalé. Il faudra alors installer ces packages supplémentaires sur votre
ordinateur. Beaucoup de bibliothèques contiennent un ou plusieurs documents dé-
taillant leurs fonctionnalités et montrant leur application pas à pas à un exemple.
Pour obtenir la liste des vignettes présentes sur votre ordinateur, il suffit d’exécuter
la commande vignette().

7 Vos premières lignes de commande avec R


a) Démarrer R :
Pour démarrer R, vous pouvez par exemple lancer le langage R en double-
cliquant sur l’icône R qui se trouve par exemple sur votre bureau. La fenêtre
R console s’ouvre. Elle vous affiche tout ce texte :
R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R est un logiciel libre livré sans AUCUNE GARANTIE.


Vous pouvez le redistribuer sous certaines conditions.
Tapez 'license()' ou 'licence()' pour plus de détails.

R est un projet collaboratif avec de nombreux contributeurs.


Tapez 'contributors()' pour plus d'information et
'citation()' pour la façon de le citer dans les publications.

Tapez 'demo()' pour des démonstrations, 'help()' pour l'aide


en ligne ou 'help.start()' pour obtenir l'aide au format HTML.
Tapez 'q()' pour quitter R.
[R.app GUI 1.76 (7976) x86_64-apple-darwin17.0]

>
Puis sous ce texte, le symbole rouge >, appelé prompt, apparaît également.
Il signifie que R est prêt à travailler.
C’est à la suite de ce symbole > que vous pourrez taper les commandes R. Une
fois la commande tapée, vous devez toujours la valider par la touche Entrée.
Remarque : Il ne faut jamais taper ce symbole au clavier car il est déjà
présent en début de ligne sur la fenêtre R Console.
Remarque : Si votre commande est incomplète, le symbole > est remplacé
par +. Ce symbole + signifie que R attend la suite de la commande. Si vous
ne savez pas compléter la ligne de commande ou qu’elle présente une erreur

4
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

vous pouvez appuyer sur la touche « Echap » pour annuler la commande et


créer un nouveau symbole >.
b) Quitter R :
Pour quitter R, vous utilisez la commande
q()

La question Save workspace image? [y/n/c] est posée : R propose de sau-


vegarder le travail effectué. Trois réponses 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 vous ne pouvez pas les imprimer).
c) Sauvegarder sous R :
Si vous quittez R en choisissant la sauvegarde de l’espace de travail, deux
fichiers sont créés :
(i) le fichier .Rdata contient des informations sur les variables utilisées ,
(ii) le fichier .Rhistory contient l’ensemble des commandes utilisées.
d) Travailler avec R :
Par exemple, tapez la commande suivante et validez :
2 + 5

[1] 7

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.
e) Consulter l’aide de R
Pour toutes les commandes, vous pouvez consulter une fiche de documenta-
tion en tapant, par exemple pour la commande read.table :
?read.table

En mode console, vous pouvez faire défiler le texte avec la touche « Entrée »
ou « Flèche vers la bas ». Une fois arrivé à « END », taper q. La plupart du
temps, une page d’aide au format html s’affichera. Grâce à cette aide, il suffit
de retenir le nom de la commande, mais pas toute la syntaxe.
Vous pouvez aussi utiliser la fonction read.table
help(read.table)

#aide pour le package dont le nom est "stats"


help(package="stats")

1. Par exemple dans le résultat suivant l’indice de l’élément 123 est 1 et celui de 142 est 20
[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

5
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Pour exécuter les exemples de chaque fonction, il suffit d’utiliser la fonction


example.
example(plot)

plot> Speed <- cars$speed

plot> Distance <- cars$dist

plot> plot(Speed, Distance, panel.first = grid(8, 8),


plot+ pch = 0, cex = 1.2, col = "blue")
120
100
80
Distance

60
40
20
0

5 10 15 20 25

Speed

plot> plot(Speed, Distance,


plot+ panel.first = lines(stats::lowess(Speed, Distance), lty = "dashed"),
plot+ pch = 0, cex = 1.2, col = "blue")

6
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

120
100
80
Distance

60
40
20
0

5 10 15 20 25

Speed

plot> ## Show the different plot types


plot> x <- 0:12

plot> y <- sin(pi/5 * x)

plot> op <- par(mfrow = c(3,3), mar = .1+ c(2,2,3,1))

plot> for (tp in c("p","l","b", "c","o","h", "s","S","n")) {


plot+ plot(y ~ x, type = tp, main = paste0("plot(*, type = \"", tp, "\")"))
plot+ if(tp == "S") {
plot+ lines(x, y, type = "s", col = "red", lty = 2)
plot+ mtext("lines(*, type = \"s\", ...)", col = "red", cex = 0.8)
plot+ }
plot+ }

7
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

plot(*, type = "p") plot(*, type = "l") plot(*, type = "b")

1.0

1.0

1.0
0.5

0.5

0.5
0.0

0.0

0.0
y

y
−0.5

−0.5

−0.5
−1.0

−1.0

−1.0
0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12

x = "c")
plot(*, type x = "o")
plot(*, type x = "h")
plot(*, type
1.0

1.0

1.0
0.5

0.5

0.5
0.0

0.0

0.0
y

y
−0.5

−0.5

−0.5
−1.0

−1.0

−1.0
0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12

x = "s")
plot(*, type x = "S")
plot(*, type x = "n")
plot(*, type
lines(*, type = "s", ...)
1.0

1.0

1.0
0.5

0.5

0.5
0.0

0.0

0.0
y

y
−0.5

−0.5

−0.5
−1.0

−1.0

−1.0

0 2 4 6 8 10 12 0 2 4 6 8 10 12 0 2 4 6 8 10 12

x x x

plot> par(op)

plot> ##--- Log-Log Plot with custom axes


plot> lx <- seq(1, 5, length.out = 41)

plot> yl <- expression(e^{-frac(1,2) * {log[10](x)}^2})

plot> y <- exp(-.5*lx^2)

plot> op <- par(mfrow = c(2,1), mar = par("mar")-c(1,0,2,0), mgp = c(2, .7, 0))

plot> plot(10^lx, y, log = "xy", type = "l", col = "purple",


plot+ main = "Log-Log plot", ylab = yl, xlab = "x")

plot> plot(10^lx, y, log = "xy", type = "o", pch = ".", col = "forestgreen",
plot+ main = "Log-Log plot with custom axes", ylab = yl, xlab = "x",
plot+ axes = FALSE, frame.plot = TRUE)

8
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Log−Log plot

1e−01
2
e−2log10(x)
1e−03
1

1e−05

1e+01 1e+02 1e+03 1e+04 1e+05


x

Log−Log plot with custom axes

10−1

10−2
2
e−2log10(x)

10−3
1

10−4

10−5

10 100 1000 10000 100000


x

plot> my.at <- 10^(1:5)

plot> axis(1, at = my.at, labels = formatC(my.at, format = "fg"))

plot> e.y <- -5:-1 ; at.y <- 10^e.y

plot> axis(2, at = at.y, col.axis = "red", las = 1,


plot+ labels = as.expression(lapply(e.y, function(E) bquote(10^.(E)))))

plot> par(op)

Vous pouvez rappeler les commandes déjà éxécutées (pendant cette séance) en uti-
lisant la touche « Flèche vers le haut ».

8 Rentrer des données sous R


Différentes commandes sont disponibles pour saisir des données sous R.

9
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

8.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 :
• R différencie les lettres minuscules et les lettres majuscules.
• Quand on assigne un nom à un objet, l’affichage de cet objet n’est plus au-
tomatique, il faut le demander en tapant simplement le nom donné à l’objet.
• En fait, on peut remarquer que le signe = marche également pour faire des
affectations. Essayer :
a=3
a

[1] 3

Choisisser donc la manière que vous voulez pour affecter !

8.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

Deuxième façon
La fonction seq crée une suite (séquence) de nombres et possèdent trois arguments :
from, to et by.
Le premier, noté from par R, est celui qui indique d’où part la suite, le deuxième,
noté to par R indique la fin de la suite et le troisième et dernier, noté by par R,
mentionne le pas de la progression également appelé raison. La suite d’entiers allant
de a à b en avançant par pas de k est créée par la ligne de commande suivante :
seq(from=a,to=b,by=k)

Remarque : ne tapez pas cette ligne de commande en l’état. Il faut que vous
remplaciez les valeurs a, b et k par celles que vous avez choisies.
Remarque : seq peut créer une suite d’entiers mais aussi une suite de réels ce que
ne fait pas l’opérateur ":". En fait, ":" est un cas particulier de la fonction seq avec
un pas toujours égal à 1.

10
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

seq(from=1,to=12,by=1)

[1] 1 2 3 4 5 6 7 8 9 10 11 12

Remarque : Nous pouvons 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, on
utilise encore la fonction seq :

seq(from=20,to=40,by=5)

[1] 20 25 30 35 40

8.3 Combinaison ou vecteur


Il est possible de saisir une série de valeurs numériques, caractères ou logiques.
Premier exemple.

serie1<-c(1.2,36,5.33,-26.5)

serie1 est un vecteur numérique. Comment le savoir ?


Taper la commance 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 ?
Deuxième exemple.

serie2<-c("bleu","vert","marron")

serie2 est un vecteur de chaînes de caractères

serie2

[1] "bleu" "vert" "marron"

Remarque : 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 guillemets, sinon R ne
reconnaît pas les composantes du vecteur :

11
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

serie2<-c(bleu,vert,marron)

Error in eval(expr, envir, enclos): objet ’bleu’ introuvable

Troisième exemple.

serie3<-c(TRUE,TRUE,FALSE,FALSE,TRUE)

serie3 est un vecteur logique

serie3

[1] TRUE TRUE FALSE FALSE TRUE

Quatrième exemple.
Lors d’une étude statistique, il peut arriver que certaines données ne soient pas
disponibles : on dit que la donnée est manquante. Pour saisir une donnée man-
quante, on utilise le symbole NA (Not Available) que l’objet soit numérique, caractère
ou logique :

serie4<-c(1.2,36,NA,-26.5)

la 3ième valeur est laissée en valeur manquante

serie4

[1] 1.2 36.0 NA -26.5

8.4 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
être numérique, caractère ou 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, on utilise les fonctions
mode et length :

mode(serie1)

[1] "numeric"

mode(serie2)

[1] "character"

mode(serie3)

[1] "logical"

12
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

length(serie1)

[1] 4

length(serie2)

[1] 3

length(serie3)

[1] 5

8.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
2:36
3:5.33
4:-26.5

Vous devez taper 1.2 après l’invite 1: et ainsi de suite. Le premier retour-chariot
après une chaîne vide met fin à la saisie.

5:

Afficher le contenu de jeu1.

jeu1

[1] 1.20 36.00 5.33 -26.50

8.6 É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 le troisième élément :

serie1[3]

[1] 5.33

Pour afficher les éléments 1 et 3.

13
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

serie1[c(1,3)]

[1] 1.20 5.33

9 Manipuler des vecteurs


Plusieurs opérations sont possibles sur les vecteurs : concaténation, extraction, cal-
culs, répétition, légende et tri.

9.1 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

9.2 Extraire des données d’un vecteur


Il est possible d’extraire des données à partir d’un vecteur selon trois façons :
1. Utiliser un vecteur pour préciser le numéro d’ordre des composantes à ex-
traire. Ainsi pour extraire les 2ème et 5ème composantes du vecteur x :
x[c(2,5)]

[1] 3.5 12.0

2. L’utilisation du signe tiret permet de supprimer des composantes, par exemple


pour supprimer les 2ème et 3ème composantes du vecteur x :
x[-c(2,3)]

[1] 2.3 14.0 12.0

3. Utiliser un vecteur formé de valeurs logiques. Par exemple, pour obtenir un


vecteur ne contenant 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 d’extraire de y les valeurs
de y pour lesquels x est supérieur à 4 en utilisant la ligne de commande suivante :

14
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

y[x>4]

[1] 0.7 1.0 3.5

9.3 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] 2.75 4.25 3.35 7.50 7.75

9.4 Remplacer des données dans un vecteur


Il est possible de remplacer certaines composantes d’un vecteur par de nouvelles
valeurs.
Considérons d’une suite de valeurs numériques :
x <- 1:10

Premier exemple :
Si vous voulez remplacer la 3ème valeur de x par 35, vous utiliserez alors la ligne de
commande 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

Deuxième exemple :
Si vous voulez remplacer la valeur 1 par la valeur 25, vous utiliserez alors la ligne
de commande 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

Troisième exemple :
Si vous voulez remplacer toutes les valeurs supérieures ou égales à 5 par 20, vous
utiliserez alors la ligne de commande suivante :

15
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

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

9.5 Répéter les données d’un vecteur


Il existe une fonction, la fonction rep, qui peut servir à construire des suites parti-
culières comme les suites constantes ou les suites périodiques. rep se caractérise par
deux arguments :
— le premier, noté x par R, est celui qui comporte les chiffres qui composent le
motif qui est répété dans la suite
— le second, noté times par R, est le nombre de fois que vous souhaitez répéter
x.
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)

[1] 1 2 3 1 2 3

Deuxième exemple : Vous pouvez également demander qu’un vecteur contienne


50 fois la valeur 1 :

rep(1,50)

[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[34] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Troisième exemple : ou 4 fois la chaîne de caractères « chien » :

rep("chien",4)

[1] "chien" "chien" "chien" "chien"

16
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

9.6 Nommer les composantes d’un vecteur


Il est possible de donner un nom à chaque composante d’un vecteur.
Exemple
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)

Afficher le vecteur notes.Jean. Vous obtenez le résultat suivant :

Anglais Informatique Biologie


12.0 19.5 14.0

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

[1] "Anglais" "Informatique" "Biologie"

note <- c(12,19.5,14)


note

[1] 12.0 19.5 14.0

names(note) <- matiere


note

Anglais Informatique Biologie


12.0 19.5 14.0

Remarque : Pour supprimer les noms :

names(note) <- NULL


note

[1] 12.0 19.5 14.0

9.7 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 précédent :
Pour trier les notes dans l’ordre croissant :

17
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

sort(note)

[1] 12.0 14.0 19.5

ou dans l’ordre décroissant :

rev(sort(note))

[1] 19.5 14.0 12.0

9.8 Opérateurs logiques


L’extraction ou le remplacement de valeurs dans un vecteur passe par l’utilisation
de vecteur logiques. Reprenons l’un des exemples précédents.

suite <- 1:12


suite

[1] 1 2 3 4 5 6 7 8 9 10 11 12

Nous souhaitons connaître les éléments du vecteur suite strictement supérieurs à 6


:

suite > 6

[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
[12] TRUE

Le logiciel nous renvoie un vecteur logique. La valeur de chacune de ses coordonnées


nous indique si l’élément qui est à la même position dans le vecteur suite est
strictement supérieur à 6 ou non. Ainsi TRUE signifie strictement supérieur à 6 et
FALSE signifie inférieur ou égal à 6.
Il est possible d’associer des vecteurs logiques logic1 et logic2 en utilisant les
connecteurs logiques suivant :
— !logic1 est la négation de logic1, également appelé opérateur NON, c’est-
à-dire le vecteur dont les éléments sont TRUE lorsque ceux de logic1 sont
FALSE et dont les éléments sont FALSE lorsque ceux de logic1 sont TRUE.
— logic1 & logic2 est la conjonction, également appelé opérateur ET, des
deux vecteurs logiques logic1 et logic2.
— logic1 && logic2 est identique à logic1[1] & logic2[1] et seul le pre-
mier élément de chacun des deux vecteurs est utilisé.
— logic1 | logic2 est la disjonction inclusive, également appelé opérateur
OU inclusif, des deux vecteurs logiques logic1 et logic2.
— logic1 || logic2 est identique à logic1[1] | logic2[1] et seul le pre-
mier élément de chacun des deux vecteurs est utilisé.
— xor(logic1, logic2) est la disjonction exclusive, également appelé opéra-
teur OU exclusif, des deux vecteurs logiques logic1 et logic2.

18
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Voici quelques exemples d’utilisation d’opérateurs logiques.


!(suite >6)

[1] TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
[12] FALSE

suite <= 6 & suite >= 6

[1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
[12] 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
explicitent également le comportement des opérateurs en cas de valeurs manquantes.

x <- c(NA, FALSE, TRUE)


names(x) <- as.character(x)
!x
<NA> FALSE TRUE
NA TRUE FALSE
outer(x, x, "&")
<NA> FALSE TRUE
<NA> NA FALSE NA
FALSE FALSE FALSE FALSE
TRUE NA FALSE TRUE
outer(x, x, "|")
<NA> FALSE TRUE
<NA> NA NA TRUE
FALSE NA FALSE TRUE
TRUE TRUE TRUE TRUE
outer(x, x, "xor")
<NA> FALSE TRUE
<NA> NA NA NA
FALSE NA FALSE TRUE
TRUE NA TRUE FALSE

19
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

10 Créer une matrice sous R


10.1 Créer des matrices
Pour créer une matrice, différentes méthodes sous R existent. La méthode la plus
utilisée pour créer une matrice est la commande matrix qui a deux arguments : le
vecteur d’éléments et le nombre de lignes et de colonnes de la matrice.

matrice1<-matrix(1:12,ncol=3)
matrice1

[,1] [,2] [,3]


[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12

Remarque : que remarquez-vous ? R a rangé, par défaut, les éléments dans la


matrice1 par colonne. Si vous souhaitez ranger les éléments dans la matrice, ligne
par ligne, vous utilisez alors l’argument byrow=TRUE.

matrice2<-matrix(1:12,ncol=3,byrow=TRUE)
matrice2

[,1] [,2] [,3]


[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12

Vous avez également la possibilité d’attribuer des noms aux lignes et aux colonnes
d’une matrice via l’option dimnames que vous ajouterez dans la fonction matrix.
Ces noms doivent être de type character.
Remarque : tapez la ligne de commande suivante :

class(matrice2)

[1] "matrix" "array"

Donc matrice2 est une matrice. Appliquez la fonction length à cette matrice :

length(matrice2)

[1] 12

length vous indique le nombre d’éléments qui composent la matrice2. Maintenant


si vous tapez la ligne de commande suivante :

dim(matrice2)

[1] 4 3

20
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

dim vous renvoie le nombre de lignes et de colonnes qui forment la matrice, c’est-à-
dire 4 et 3. Notez que 4 fois 3 est égal à 12, le nombre d’éléments de la matrice.
Sur une matrice, il y a une différence entre la fonction length et la fonction dim.
Comme pour les vecteurs, R recycle les éléments du vecteur utilisé lors de la création
d’une matrice.

matrice3<-matrix(1:12,nrow=4,ncol=4)
matrice3

[,1] [,2] [,3] [,4]


[1,] 1 5 9 1
[2,] 2 6 10 2
[3,] 3 7 11 3
[4,] 4 8 12 4

La fonction scan est particulièrement utile pour saisir une matrice :

mat1 <- matrix(scan(),nrow=2,byrow=TRUE)


1: 1 3 4
4: 5 2 1
7:

Afficher le contenu de mat1.

mat1

[,1] [,2] [,3]


[1,] 1 3 4
[2,] 5 2 1

10.2 Afficher des éléments ou une partie de la matrice


Comme pour les vecteurs, vous pouvez sélectionner des éléments de la matrice et les
afficher, de même vous pouvez sélectionner une partie de la matrice et l’afficher.
Pour un élément (i,j) d’une matrice appelée nom_matrice, vous devez utiliser la
ligne de commande suivante :

nom_matrice[i,j]

Exemple : tapez la ligne de commande suivante :

matrice3[3,3]

[1] 11

Pour une partie de la matrice, plusieurs possibilités s’offrent à vous en fonction de


ce que vous cherchez à faire. Pour sélectionner la ligne i d’une matrice, vous devez
utiliser la ligne de commande suivante :

21
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

nom_matrice[i,]

Exemple : tapez la ligne de commande suivante :

matrice3[3,]

[1] 3 7 11 3

Pour sélectionner la colonne j d’une matrice, vous devez utiliser la ligne de com-
mande suivante :

nom_matrice[,j]

Exemple : tapez la ligne de commande suivante :

matrice3[,3]

[1] 9 10 11 12

Remarque : R vous renvoie, par défaut toujours le résultat sous la forme d’un
vecteur même si c’est une colonne que vous avez demandé à extraire. Si vous voulez
que le résultat apparaisse sous forme d’une matrice à une ligne ou à une colonne,
vous devez utiliser l’argument drop=FALSE.
Exemple :

matrice3[,3,drop=FALSE]

[,1]
[1,] 9
[2,] 10
[3,] 11
[4,] 12

Pour sélectionner plusieurs colonnes ou plusieurs lignes à la fois, plusieurs méthodes


sont disponibles. Quelques unes d’entre elles vous sont présentées dans la suite
et leur utilisation conseillée mais vous pouvez en trouver d’autres. Vous pouvez
sélectionner des colonnes par un vecteur d’entiers représentant le(s) numéro(s) des
colonnes à conserver ou par un vecteur de valeurs logiques indiquant si vous voulez
extraire ou non chacune des colonnes.
Exemple : vous souhaitez construire la matrice4 constituée de la deuxième et de
la quatrième colonne de la matrice3. Pour cela, vous tapez la ligne de commande
suivante :

(matrice4<-matrice3[,c(2,4)])

[,1] [,2]
[1,] 5 1
[2,] 6 2
[3,] 7 3
[4,] 8 4

22
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Pour supprimer la première ligne ou la première colonne d’une matrice, il faut utiliser
soit nom_matrice[-1,] soit nom_matrice[,-1].
Exemple :
(matrice5<-matrice3[,-1])

[,1] [,2] [,3]


[1,] 5 9 1
[2,] 6 10 2
[3,] 7 11 3
[4,] 8 12 4

10.3 Opérer sur les lignes et les colonnes


La commande nrow(nom_matrice) renvoie le nombre de lignes de la matrice sur
laquelle vous travaillez.
Exemple :
nrow(matrice5)

[1] 4

La commande ncol(nom_matrice) renvoie le nombre de colonnes de la matrice sur


laquelle vous travaillez.
Exemple :
ncol(matrice5)

[1] 3

Remarque : vous pouvez aussi obtenir ces deux informations en vous servant de
la fonction dim déjà rencontrée au début de ce chapitre.
Exemple :
dim(matrice5)

[1] 4 3

Vous pouvez aussi rajouter des lignes, avec la fonction rbind, ou des colonnes, avec
la fonction cbind, à une matrice existante, voire même concaténer des matrices.
Exemple :
rbind(matrice5,c(13:15))

[,1] [,2] [,3]


[1,] 5 9 1
[2,] 6 10 2
[3,] 7 11 3
[4,] 8 12 4
[5,] 13 14 15

23
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

cbind(matrice5,c(13:16))

[,1] [,2] [,3] [,4]


[1,] 5 9 1 13
[2,] 6 10 2 14
[3,] 7 11 3 15
[4,] 8 12 4 16

10.4 Faire des calculs sur les matrices


R sait faire la somme, le produit de matrices ainsi que transposer une matrice,
calculer son déterminant, inverser une matrice, diagonaliser une matrice, le tout en
respectant les conditions d’existence mathématiques de ces opérations.
Produit de deux matrices : Pour multiplier deux matrices entre elles, vous
utiliserez la fonction %*%.
Exemple :

matrice6<-matrix(1:6,ncol=3)
matrice6

[,1] [,2] [,3]


[1,] 1 3 5
[2,] 2 4 6

matrice7<-matrix(1:12,ncol=4)
matrice7

[,1] [,2] [,3] [,4]


[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

Maintenant, si vous souhaitez multiplier les deux matrices matrice6 et matrice7,


vous allez utiliser la fonction %*%. Vous tapez donc la ligne de commande suivante
:

matrice8<-matrice6 %*% matrice7


matrice8

[,1] [,2] [,3] [,4]


[1,] 22 49 76 103
[2,] 28 64 100 136

Attention, n’utilisez pas la fonction * à la place de la fonction %*%. En effet,


la fonction * ne signifie pas le produit de matrices comme il est défini dans votre
cours de mathématiques. En fait, la fonction * exécute le produit hh coefficient par
coefficient ii, comme vous allez le voir sur l’exemple ci-dessous.
Exemple : si à la place de la ligne de commande :

24
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

matrice6 %*% matrice7

[,1] [,2] [,3] [,4]


[1,] 22 49 76 103
[2,] 28 64 100 136

vous tapez la ligne de commande :


matrice6*matrice7

Error in matrice6 * matrice7: tableaux de tailles inadéquates

voilà ce que R vous affichera :


Erreur dans matrice6 * matrice7 : tableaux de tailles inadéquates
ou si vous utilisez la version anglaise de R :
Error in matrice6 * matrice7 : non-conformable arrays
En fait, la fonction * travaille sur des matrices de même taille.
Exemple : donc si vous tapez les deux lignes de commande suivantes :

matrice9<-matrix(7:12,ncol=3)
matrice9

[,1] [,2] [,3]


[1,] 7 9 11
[2,] 8 10 12

R vous affiche alors le contenu de la matrice :


[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
Puis vous tapez encore :
matrice10<-matrice6*matrice9
matrice10

[,1] [,2] [,3]


[1,] 7 27 55
[2,] 16 40 72

R vous affiche alors :


[,1] [,2] [,3]
[1,] 7 27 55
[2,] 16 40 72
Remarquez aussi que si vous aviez tapé la ligne de commande :

25
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

matrice11<-matrice9*matrice6

à la place de la ligne de commande :

matrice10<-matrice6*matrice9

le résultat aurait été le même. En effet, tapez les deux lignes suivantes :

matrice11<-matrice9*matrice6
matrice11

[,1] [,2] [,3]


[1,] 7 27 55
[2,] 16 40 72

et vous obtenez :

[,1] [,2] [,3]


[1,] 7 27 55
[2,] 16 40 72
Maintenant, si vous aviez tapé la ligne de commande suivante :

matrice12<-matrice7 %*% matrice6

à la place de la ligne de commande :

matrice8<-matrice6 %*% matrice7

le résultat obtenu n’aurait pas été le même. En effet, tapez la ligne de commande
suivante :

matrice12<-matrice7 %*% matrice6

Error in matrice7 %*% matrice6: arguments inadéquats

et vous obtenez :

Erreur dans matrice7 \%*\% matrice6 : arguments inadéquats

Le tableau suivant donne les principales commandes utiles lorsque vous chercherez
à faire des calculs sur les matrices :

Fonction Description
t(nomm atrice) Transpose la matrice sur laquelle vous travaillez.
det(nomm atrice) Calcule le déterminant de la matrice sur laquelle vous travaillez.
solve(nomm atrice) Inverse la matrice sur laquelle vous travaillez.
eigen(nomm atrice) Diagonalise la matrice sur laquelle vous travaillez.

26
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

11 Les fonctions de R
Les objets importants à connaître sous R sont les fonctions. Elles vous rendront des
services pour faire vos analyses statistiques. En fait, vous les avez déjà rencontrées
tout au long de ce chapitre sans le savoir.

11.1 Généralités
Une fonction se distingue facilement des objets que vous avez déjà rencontrés. En
effet, pour se servir d’une fonction il faut faire suivre son nom de parenthèses qui
contiennent des informations nécessaires à l’exécution de la fonction.
Exemple : class, mode, length, dim et str qui sont les fonctions principales pour
caractériser un objet.
Pour afficher le contenu d’une fonction, il suffit de taper le nom de la fonction sans
les parenthèses.
Exemple :
mode

function (x)
{
if (is.expression(x))
return("expression")
if (is.call(x))
return(switch(deparse(x[[1L]])[1L], `(` = "(", "call"))
if (is.name(x))
"name"
else switch(tx <- typeof(x), double = , integer = "numeric",
closure = , builtin = , special = "function", tx)
}
<bytecode: 0x7fe1b9335470>
<environment: namespace:base>

Les fonctions sont des objets qui exécutent des procédures.


Exemple : sous R, il existe des fonctions qui vont réaliser pour vous des calculs
statistiques ou encore des graphiques, etc. Vous allez rencontrer prochainement la
fonction summary ou encore la fonction plot.
Ce sont les parenthèses qui permettent l’exécution de la fonction. Si vous les oubliez,
la fonction ne s’exécutera pas.
Exemple : si vous souhaitez afficher la liste des objets en mémoire de R, il faut taper
la commande ls() et non simplement ls. En effet, si vous écrivez ls, R affichera le
contenu de l’objet ls c’est-à-dire le code de la fonction !
Ainsi, même pour utiliser une fonction qui n’a pas besoin d’arguments, il faut faire
suivre son nom de parenthèses.

11.2 Les arguments d’une fonction


À l’intérieur des parenthèses, il faut parfois spécifier les paramètres encore appelés
arguments ou options, de la fonction que vous utilisez. Ces arguments peuvent

27
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

prendre deux formes : obligatoire ou optionnelle. Une fonction peut avoir plusieurs
arguments et chacun est séparé par une virgule.
Remarque : vous avez déjà rencontré ce terme arguments dans précédemment
lorsque la fonction seq a été introduite ainsi que la fonction rep et enfin dans le
paragraphe sur les matrices. En effet, la fonction seq a besoin de trois arguments
pour s’exécuter et chacun est séparé par une virgule. Même remarque pour la
fonction rep où à la place de trois il faut mettre deux. Et enfin, la fonction matrix
a besoin de deux arguments pour s’exécuter et chacun est séparé par une virgule.
D’autre part, la fonction args renvoie les arguments d’une fonction.
Exemple :
args(matrix)

function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)


NULL

11.3 Syntaxe des principales fonctions de R


Certaines fonctions statistiques, en particulier les fonctions de modélisation que vous
rencontrerez lors de vos modélisations, travaillent avec des formules :
fonction(formula=, data=)

où formula est de type réponse prédicteurs et data représente le tableau de


données sur lequel vous travaillez et dans lequel se trouvent les variables qui inter-
viennent dans formula.
Ce qui est appelé réponse en statistique correspond à la variable à expliquer et ce
qui est appelé prédicteurs correspond à l’ensemble des variables explicatives.
Exemple :
aov(Sepal.Length~Species,data=iris)

Ici la fonction est aov, la réponse est Sepal.Length, ici il n’y a qu’un prédicteur
qui est Species et le tableau de données est iris. Cette fonction sert à réaliser une
analyse de la variance à un facteur, comme vous le verrez peut-être lors de cours de
d’analyse de données ou de data science.
aov(Sepal.Length~Species,data=iris)

Call:
aov(formula = Sepal.Length ~ Species, data = iris)

Terms:
Species Residuals
Sum of Squares 63.21213 38.95620
Deg. of Freedom 2 147

Residual standard error: 0.5147894


Estimated effects may be unbalanced

28
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

11.4 Construction d’une fonction


Toutes les fonctions dont vous aurez besoin pour faire les exercices sont déjà exis-
tantes dans R. Donc vous n’aurez pas besoin d’en construire dans le cadre du livre.
Mais sachez que vous pouvez en créer vous-même si vous en avez besoin. Pour cela,
il serait judicieux de consulter un ouvrage spécialisé qui traite de ce sujet.

12 Créer un tableau de données sous R


Vous aurez parfois besoin de saisir un jeu de données dans R et de le stocker dans
un tableau de données. Voici une définition d’un tableau de données.
Définition : Un tableau de données est une collection de vecteurs de même
longueur.
Remarque : la nature des vecteurs peut-être différente. En effet, ils peuvent être
de nature quantitative ou qualitative.
Pour créer un tableau de données sous R, il faut utiliser la fonction data.frame.
Cette fonction permet de concaténer des vecteurs de même longueur et de modes
différents.
Remarque : les jeux de données que vous étudierez seront souvent considérés comme
des data.frames.
Exemple : saisissez deux vecteurs notés mat et phy :

mat<-c(19.6,17.6,18.2,16.0)
phy<-c(19.1,17.8,18.7,16.1)

puis construisez le tableau de données, noté res, à l’aide de la fonction data.frame


en tapant la ligne de commande suivante :

res<-data.frame(mat,phy)
res

mat phy
1 19.6 19.1
2 17.6 17.8
3 18.2 18.7
4 16.0 16.1

Il est possible de donner des noms aux lignes du tableau de données avec l’option
row.names qui doit fournir un vecteur de mode caractère et de longueur égale au
nombre de lignes du tableau de données.
Exemple : le tableau de données ci-dessus correspond aux moyennes trimestrielles
de mathématiques et de sciences physiques qu’ont obtenu Guillaume, Valérie, Thomas
et Julie. Donc, vous tapez la ligne de commande suivante pour voir apparaître les
noms en face des quatre lignes :

res2<-data.frame(mat,phy,row.names=c("Guillaume","Val´erie", "Thomas","Julie"))
res2

29
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

mat phy
Guillaume 19.6 19.1
Val´erie 17.6 17.8
Thomas 18.2 18.7
Julie 16.0 16.1

Les fonctions cbind et rbind, qui ont été introduites dans le paragraphe sur les
matrices, s’utilisent aussi avec les tableaux de données.
Vous noterez aussi que les fonctions ncol et nrow, qui renvoient le nombre de
colonnes et le nombre de lignes, s’emploient également.
Enfin, il est possible d’utiliser les crochets pour extraire une sous-partie d’un tableau
de données. Ces derniers ont le même comportement que lorsqu’ils sont utilisés avec
des matrices.
Enfin, vous rencontrerez dans le paragraphe suivant la fonction read.table qui permet
de créer un tableau de données à partir des informations contenues dans un fichier
au format texte.

13 Lire et écrire des objets au format R


Les fonctions load et save servent à charger en mémoire ou à sauvegarder des objets
au format utilisé par R.
Créez le vecteur numérique pH qui contient les valeurs numériques 1,2 ; 3,5 ; 11,0 ;
7,1 et 8,2 en exécutant la commande suivante :
pH<-c(1.2,3.5,11.0,7.1,8.2)

Vérifiez que l’objet pH est conforme à vos attentes en l’affichant :


pH

[1] 1.2 3.5 11.0 7.1 8.2

Pour sauvegarder dans le répertoire de travail, l’objet pH dans le fichier appelé


FichierpH.RData, .RData est l’extension naturelle des fichiers sauvegardés par R,
il suffit d’utiliser la commande :
save(pH,file="FichierpH.RData")

Supprimez maintenant l’objet pH de la mémoire du logiciel en tapant :


rm(pH)

Vérifiez que l’objet pH est désormais absent de la mémoire du logiciel en cherchant


à afficher son contenu :
pH

Error in eval(expr, envir, enclos): objet ’pH’ introuvable

Vous obtenez l’erreur suivante :

30
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Erreur : objet ' pH ' introuvable

ou si vous utilisez la version anglaise de R :

Error: object ' pH ' not found


Réintégrez en mémoire l’objet pH en utilisant la sauvegarde contenue dans le fichier
FichierpH.RData grâce à la commande suivante :

load("FichierpH.RData")

L’objet pH est à nouveau présent en mémoire et vous pouvez afficher son contenu :

pH

[1] 1.2 3.5 11.0 7.1 8.2

Pour lire un fichier de sauvegarde au format de R, vous pouvez aussi simplement le


glisser dans la fenêtre de la Console R de l’interface graphique du logiciel lorsque
vous en disposez d’une.

14 Lire des données dans un fichier


Quand les données sont plus volumineuses, il n’est pas très conseillé d’utiliser R
comme outil de saisie. Dans ce cas, vous pouvez utiliser un éditeur de texte ou
un tableur quelconque pour saisir vos données (excel par exemple) et le transférer
ensuite sous R.
Il est nécesaire d’indiquer au logiciel R l’endroit où sont stockés les fichiers de don-
nées. Ceci peut être fait soit à chaque chargement de fichier soit pour la durée de
chaque utilisation du logiciel.
Pour connaître le répertoire de travail actuellement utilisé par R, qui est par défaut
le répertoire où le logiciel est installé, il suffit de taper l’ instruction suivante :

getwd()

[1] "/Users/fbertran/Documents/Enseignements/UTT/SY02"

Pour changer le répertoire de travail par défaut, pour la durée de la session R, pour,
par exemple, le répertoire "C:\Data", il suffit de taper :

setwd("C:\\Data")

ou de manière équivalente

setwd("C:/Data")

Pour des raisons liées à la syntaxe de R, plus précisément la syntaxe des systèmes
Unix, la barre oblique inversée "\" a été remplacée soit par une barre oblique "/"
soit par deux barres obliques inversées "\\".

31
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Télécharger, depuis la page https://fbertran.github.io/homepage/BioStatR/,


les fichiers au format texte (.txt) table1.txt, table2.txt, table3.txt, table4.txt,
les fichiers au format csv (.csv) table5.csv et table6.csv et les fichiers au format
excel (.xlsx) table9.xlsx et table10.xlsx sur votre ordinateur dans un répertoire
de l’ordinateur puis faites devenir ce répertoire le répertoire de travail par défaut de
R.
Les données suivantes ont été saisies dans le fichier table1.txt :
53.5 160
74.4 172
52.6 151
88.6 163
49.2 169

read.table("table1.txt")

V1 V2
1 53.5 160
2 74.4 172
3 52.6 151
4 88.6 163
5 49.2 169

R affiche le tableau de données en numérotant les lignes et les colonnes, les lignes
correspondant aux individus et les colonnes aux variables. R affiche un message
d’avertissement concernant le nom des variables.
Vous pouvez également conserver la table comme un objet pour pouvoir la réutiliser
directement :

tab<-read.table("table1.txt")

et demander l’affichage de cet objet :

tab

V1 V2
1 53.5 160
2 74.4 172
3 52.6 151
4 88.6 163
5 49.2 169

ou seulement d’une colonne de cet objet :

tab$V1

[1] 53.5 74.4 52.6 88.6 49.2

ou seulement de l’élément de la première ligne et de la première colonne :

32
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

tab[1,c(1)]

[1] 53.5

ou

tab[1,1]

[1] 53.5

ou les éléments des deux premières lignes et de la première colonne :

tab[1:2,1]

[1] 53.5 74.4

ou les éléments des deux premières lignes et des deux premières colonnes :

tab[1:2,1:2]

V1 V2
1 53.5 160
2 74.4 172

Pour travailler ensuite sur les variables de la table, vous pouvez leur attribuer un
nom (plus simple que la syntaxe utilisée) :

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=TRUE)

Masse Taille
1 53.5 160
2 74.4 172
3 52.6 151
4 88.6 163
5 49.2 169

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 :

33
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

read.table("table3.txt",dec=",")

V1 V2
1 53.5 160
2 74.4 172
3 52.6 151
4 88.6 163
5 49.2 169

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=";")

V1 V2
1 53.5 160
2 74.4 172
3 52.6 151
4 88.6 163
5 49.2 169

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())

L’instruction suivante permet de lire le fichier de données au format excel "ta-


ble9.xlsx" :

install.packages("openxlsx")
library(openxlsx)
(data <- read.xlsx("table9.xlsx", colNames = TRUE, sheet = 1, startRow = 1))

Vous commencez par remarquer que nous avons dû installer un package d’extension
de R, le package openxlsx à l’aide de la commande install.packages("openxlsx").
Il ne faut pas oublier les " dans cette commande sinon elle ne fonctionne pas.

34
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

L’option colNames = TRUE indique que la première ligne du jeu de données contient
les noms des colonnes, la commande sheet = 1 signifie qu’il faut importer des
données de la première feuille du classeur excel.
Nous calculons le BMI de chacun des individus du jeu de données que nous stockons
dans la colonne BMI de l’objet data :

data$BMI <- data$Masse/(data$Taille/100)^2

Affichons le jeu de données data :

data

Masse Taille BMI


1 53.5 160 20.89844
2 74.4 172 25.14873
3 52.6 151 23.06916
4 88.6 163 33.34713
5 49.2 169 17.22629

ou simplement la variable BMI du jeu de données data :

data$BMI

[1] 20.89844 25.14873 23.06916 33.34713 17.22629

Si nous souhaitons mettre à jour le jeu de données data dans la feuille correspondante
du classeur excel "table9.xlsx" :

write.xlsx(data, file.choose(), colNames = TRUE, sheet = 1, from = 1,


rowNames = FALSE )

Si au contraire nous souhaitons créer un nouveau fichier .xlsx, "table_nouvelle.xlsx",


dans le répertoire de travail courant :

[1] TRUE

write.xlsx(data, "table_nouvelle.xlsx", colNames = TRUE, sheet = 1, from = 1,


rowNames = FALSE)

L’option rownames de la fonction write.xlsx peut prendre deux valeurs FALSE,


qui est sa valeur par défaut, ou TRUE. Lorsque nous utilisons rownames = TRUE, le
nom des lignes du jeu de données est systématiquement inclus en tant que première
colonne du tableau exporté au format Excel. Sinon, aucun de nom de ligne n’est
écrit.
Dans les instructions précédentes, "Données" est le nom de la feuille excel du classeur
dont il faut importer les données.

35
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

15 Fichiers scripts
15.1 R classique
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".
Conseil : Écrire des scripts lisibles et commentés est une habitude à prendre dès
maintenant car cela vous rendra l’utilisation de R bien plus facile.

Les quatre avantages d’écrire des scripts


a) Écrire des scripts est un gain de temps car vous pouvez facilement réutiliser,
en les adaptant si nécessaire, des lignes de commande déjà tapées.
b) Si vous avez beaucoup de lignes de commande à écrire, c’est beaucoup plus
simple de les manipuler, de les modifier dans un éditeur de texte.
c) Écrire des scripts est un outil de collaboration puissant. C’est souvent pra-
tique de pouvoir envoyer à un de vos camarades ou de vos collègues, par
fichier attaché dans un mail par exemple, votre code et le fichier de données
brut associé et de savoir qu’il lui suffit d’exécuter la fonction source sur votre
code pour effectuer votre analyse sur sa machine.
d) Enfin il n’existe pas de message d’alerte dans R sauf quand vous quittez
R. Vous pouvez alors perdre des données sans vous en rendre compte. Le
seul moyen de trouver l’erreur est de recommencer l’écriture de la ligne de
commande.
Il est à noter qu’il existe également des langages de programmation libres et gratuits
comme RStudio ou Tinn-R qui sont destinés à vous faciliter la rédaction de scripts.

15.2 RStudio ou RCommander: R sans les mains


Il existe plusieurs interfaces graphiques qui ont vocation à faciliter l’utilisation du
langage R. En voici deux parmi celles-ci qui méritent une attention particulière.
— RStudio, https://www.rstudio.com, est avant tout un outil puissant pour
écrire facilement des scripts, des fonctions voire des bibliothèques R. C’est
un programme à installer séparément de R et disponible pour les trois en-
vironnements Windows, Mac OS X et Linux. Il présente dans un même
environnement le script, la console R, la liste ainsi que le contenu des objets
présents dans la mémoire de R ainsi que les pages d’aide consultées ou les
graphiques produits. Il permet également de transformer automatiquement

36
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

un script R en un fichier au format html où sont intercalées les commandes R


avec les résultats de celles-ci.
— Rcmdr (RCommander) est une bibliothèque pour le langage R, disponible pour
les trois environnements Windows, Mac OS X et Linux. C’est avant tout une
interface graphique pour un grand nombre de fonctions usuellement utilisées
en statistique. Son utilisation rend la pratique de R proche de celles d’autres
logiciels de statistique « à menus et boîtes de dialogue » comme par exemple
SPSS, Minitab ou Statistica. Elle permet en outre d’importer facilement des
fichiers au format .csv, SPSS, SAS ou Minitab. Cette bibliothèque permet,
elle aussi comme RStudio, de transformer automatiquement un script R en un
fichier au format html où sont intercalées les commandes R avec les résultats
de celles-ci.
Pour vous montrer la facilité avec laquelle il est possible de produire ces rapports
html ou pdf ainsi que le rendu final obtenu, vous trouverez en ligne, pour chacun
des chapitres du livre, des rapports, faits avec RStudio.

37
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

16 Un glossaire qui peut servir de résumé

Fonction Description
q() Quitte le logiciel
?fonction
ou Demande la fiche de documentation de la fonction
help(”fonction”)
help(package = Demande la fiche de documentation du package intitulé
”nomdupackage”) nomdupackage
install.packages( Installe le package intitulé nomdupackage
”nomdupackage”)
vignette( Liste les vignettes du package intitulé nomdupackage
”nomdupackage”)
scan() Saisit hh au clavier ii un jeu de données numériques.
getwd() Affiche le répertoire de travail dans la console.
setwd(Chemin) Définit Chemin comme répertoire de travail.
file.choose Permet de sélectionner facilement un fichier stocké
sur l’ordinateur avec une boîte de dialogue conviviale.
load(”file”) Charge en mémoire tous les objets contenus dans
le fichier file.
save(objet, Sauvegarde l’objet objet dans le fichier file.
file = ”file”) Il est possible de sauvegarder plusieurs objets dans le même fichier.
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=TRUE) - lit le fichier de données file
contenant les noms des variables en première ligne.
Exemple : t <- read.table$("table.txt",header=TRUE)
write.table( Écrit objet dans le fichier de
objet, ”file”) données "file".
read.csv read.csv("file") - lit un fichier de données file au format CSV
anglo-saxon.
write.csv( Écrit objet dans un fichier de données file au format CSV
objet, ”file”) anglo-saxon.
read.csv2(”file”) Lit un fichier de données file au format CSV français.
write.csv2( Écrit objet dans un fichier de données file au format CSV français.
objet, ”file”)
read.xlsx read.xlsx("file") - lit un fichier de données file au format excel
write.xlsx write.xlsx("file") - écrit un fichier de données file au format excel
source(”fichier”) Exécute le script contenu dans fichier.
Attention pour utiliser les fonctions read.xlsx et write.xlsx, il faut au préalable
charger le package openxlsx.

38
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Fonction Description
s <- valeur Initialise la variable s avec la valeur. Exemple : n<-5
s = valeur
rm(s) Supprime l’objet s.
mode(s) Affiche le mode (numérique, caractère,. . . ) de la variable s
class(s) Affiche la classe (data.frame,. . . ) de l’objet 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.
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
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
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
as.character(s) Transforme l’objet s en caractères.
as.list(s) Transforme l’objet s en liste.
as.logical(s) Transforme l’objet s en booléen.
as.numeric(s) Transforme l’objet s en numérique.
is.character(s) Teste si l’objet s est un caractère.
is.list(s) Teste si l’objet s est une liste.
is.logical(s) Teste si l’objet s est un booléen.
is.na(s) Teste si l’objet s a des valeurs manquantes.
is.numeric(s) Teste si l’objet s est numérique.
is.null(s) Teste si l’objet s est nul.
sort(s) Trier les composantes d’un vecteur par ordre croissant
rev(sort(s)) Trier les composantes d’un vecteur par ordre décroissant
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.
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.

39
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

Fonction Description
tail(s, n = k) Renvoie les k derniers éléments ou les dernières
lignes de l’objet s.
dim(s) Donne les dimensions de l’objet s.
nrow(s) Donne le nombre de lignes de l’objet s.
ncol(s) Donne le nombre de colonnes de l’objet s.
rbind(r1, ..., rk) Crée une matrice ou un tableau de données en collant
les r1, ..., rk l’un en dessous de l’autre.
cbind(c1, ..., ck) Crée une matrice ou un tableau de données en collant
les c1, ..., ck l’un à côté de l’autre.

40
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

17 Exercices
Exercice 1
1. Si nécessaire, procéder au téléchargement de R et de RStudio. Puis télécharger
la bibliothèque BioStatR.
2. Consultez l’aide de la bibliothèque BioStatR.

Exercice 2
1. Créez la suite d’entiers consécutifs de 10 à 25 avec les deux méthodes.
2. Créez la suite d’entiers en progression arithmétique de premier terme 20, de
dernier terme 40 et de raison 5.
3. Créez la suite dont tous les termes sont identiques et égaux à 28 et de longueur
10.
Exercice 3 : Construction de vecteurs
1. Créer le vecteur v égal à (101;102;...;112).
2. Créer le vecteur w de longueur 12 formé de quatre fois la suite de nombres
(4;6;3).
3. Créer le vecteur x composé de huit fois le chiffre 4, de sept fois le chiffre 6 et
de cinq fois le chiffre 3.

Exercice 4 : Encore des vecteurs


1. Saisissez la variable masse 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. Saisissez la variable masse1 contenant les 5 valeurs suivantes :
40; 39; 41; 37.5; 43.
3. Sans refaire de saisie, créer la variable nouvelle.masse contenant 20 valeurs :
— les 5 valeurs de masse1 répétées deux fois
— les 10 dernières valeurs de masse.
4. Enregistrer, dans votre répertoire de travail, la variable nouvelle.masse dans
une feuille nommée "Nouvelle Masse" du classeur excel "Masse.xlsx".

Exercice 5 : Faites preuve d’imagination


1. Choisissez les noms de 10 personnes et créez le vecteur nom les contenant.
2. Créez le vecteur ou le tableau de données age contenant l’âge des 10 personnes
précédentes (entre 20 et 60 ans) et utilisez les noms des personnes comme
légende pour le vecteur age ou comme nom des lignes pour le tableau de
données age
3. Créez le vecteur ou le tableau de données masse contenant la masse des 10
personnes (entre 50 et 100 kg) en utilisant à nouveau le nom des personnes
comme légende pour ce vecteur ou comme nom des lignes pour ce tableau de
données.

41
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

4. Créez le vecteur ou le tableau de données taille contenant la taille des 10


personnes (entre 1m 60 et 2m) en utilisant à nouveau le nom des personnes
comme légende pour ce vecteur ou comme nom des lignes pour ce tableau de
données.
5. Créez le vecteur masse.lourde contenant la masse des personnes de plus de
80 kg en utilisant à nouveau le nom des personnes comme légende pour ce
vecteur.
6. Créez le vecteur taille.masse.lourde contenant la taille des personnes de
plus de 80 kg en veillant à conservant le nom associé à chaque masse.
7. Créez le vecteur taille.age.masse.lourde contenant la taille des personnes
de plus de 80 kg et âgées de plus de 30 ans en veillant à conservant le nom
associé à chaque taille. Pour répondre à cette question, vous pourrez utiliser le
connecteur logique ET dont la syntaxe est donnée dans le problème ci-dessous
ou dans l’aide sur les opérateurs logiques accessible en tapant l’instruction
?Logic.
Problème 1 : Les opérateurs logiques L’extraction ou le remplacement de
valeurs dans un vecteur passe par l’utilisation de vecteurs logiques.
1. Construisez le vecteur suite qui est une suite d’entiers allant de 1 à 12.
2. Vous souhaitez connaître les éléments du vecteur suite strictement supérieurs
à 6. Quelle est la ligne de commande que vous devez taper pour obtenir le
résultat ?
Il est possible d’associer des vecteurs logiques logic1 et logic2 en utilisant les
connecteurs logiques suivants :
— !logic1 est la négation de logic1, également appelé opérateur NON, c’est-
à-dire le vecteur dont les éléments sont TRUE lorsque ceux de logic1 sont FALSE
et dont les éléments sont FALSE lorsque ceux de logic1 sont TRUE.
— logic1 & logic2 est la conjonction, également appelé opérateur ET, des
deux vecteurs logiques logic1 et logic2.
— logic1 && logic2 est identique à logic1[1] & logic2[1] et seul le pre-
mier élément de chacun des deux vecteurs est utilisé.
— logic1 | logic2 est la disjonction inclusive, également appelé opérateur
OU inclusif, des deux vecteurs logiques logic1 et logic2.
— logic1 || logic2 est identique à logic1[1] | logic2[1] et seul le pre-
mier élément de chacun des deux vecteurs est utilisé.
— xor(logic1, logic2) est la disjonction exclusive, également appelé opéra-
teur OU exclusif, des deux vecteurs logiques logic1 et logic2.
3. Vous souhaitez connaître les éléments du vecteur suite strictement inférieurs
à 6. Quelle est la ligne de commande que vous devez taper pour obtenir le
résultat ?
4. Vous souhaitez connaître les éléments du vecteur suite égaux à 6. Quelle
est la ligne de commande que vous devez taper pour obtenir le résultat ?

42
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

5. Vous souhaitez savoir si le premier élément du vecteur suite est inférieur ou


égal à 8 et supérieur ou égal à 4. Quelle est la ligne de commande que vous
devez taper pour obtenir le résultat ?
6. Vous souhaitez connaître les éléments du vecteur suite inférieurs ou égaux
à 4 ou supérieurs ou égaux à 8. Quelle est la ligne de commande que vous
devez taper pour obtenir le résultat ?
7. Vous souhaitez savoir si le premier élément du vecteur suite est inférieur ou
égal à 4 ou supérieur ou égal à 8. Quelle est la ligne de commande que vous
devez taper pour obtenir le résultat ?
8. Vous allez maintenant construire les tables de vérité des opérateurs logiques
à l’aide de la fonction outer. La fonction outer permet d’appliquer une
fonction de deux arguments à tous les couples d’éléments que vous pouvez
former à partir des coordonnées de deux vecteurs.
Exemple : vous considérez le vecteur u des entiers de 1 à 10 et le vecteur v
des entiers de 1 à 8. Vous souhaitez construire le tableau à deux dimensions
avec le produit de toutes les coordonnées des deux vecteurs. Vous exécutez
la commande suivante :
u<-1:10
v<-1:8
outer(u,v,"*")

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]


[1,] 1 2 3 4 5 6 7 8
[2,] 2 4 6 8 10 12 14 16
[3,] 3 6 9 12 15 18 21 24
[4,] 4 8 12 16 20 24 28 32
[5,] 5 10 15 20 25 30 35 40
[6,] 6 12 18 24 30 36 42 48
[7,] 7 14 21 28 35 42 49 56
[8,] 8 16 24 32 40 48 56 64
[9,] 9 18 27 36 45 54 63 72
[10,] 10 20 30 40 50 60 70 80

9. Exécutez les commandes suivantes et remarquez qu’elles explicitent le com-


portement des opérateurs logiques en cas de présence de valeurs manquantes.

x<-c(NA,FALSE,TRUE)
names(x)<-as.character(x)
!x

<NA> FALSE TRUE


NA TRUE FALSE

outer(x,x,"&")

<NA> FALSE TRUE


<NA> NA FALSE NA
FALSE FALSE FALSE FALSE
TRUE NA FALSE TRUE

43
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

outer(x,x,"|")

<NA> FALSE TRUE


<NA> NA NA TRUE
FALSE NA FALSE TRUE
TRUE TRUE TRUE TRUE

outer(x,x,"xor")

<NA> FALSE TRUE


<NA> NA NA NA
FALSE NA FALSE TRUE
TRUE NA TRUE FALSE

18 Du mal à démarrer
Exercice 1
1. Relisez le paragraphe ??.
2. Relisez le paragraphe ?? et plus particulièrement le passage dédié à l’installation
du package openxlsx.
Exercice 2
1. Lisez l’aide de la fonction ":", en tapant ?":", et celle de la fonction seq.
2. Utilisez la fonction seq.
3. Utilisez la fonction rep.
Exercice 3
1. Utilisez l’opérateur ":".
2. Utilisez la fonction rep et la fonction c pour créer un vecteur.
3. Utilisez la fonction c et la fonction rep pour créer un vecteur. Faites attention
à l’ordre d’utilisation que vous allez utiliser pour ces deux fonctions.
Exercice 4
1. Utilisez la fonction c.
2. Utilisez la fonction c.
3. Utilisez la fonction c, la fonction rep et comment afficher une ou plusieurs
coordonnées d’un vecteur.
4. Relisez comment créer un fichier au format .xlsx
Exercice 5
1. Utilisez la fonction c.
2. Utilisez la fonction c. Relisez comment créer un tableau de données sous R.
Puis utilisez la fonction data.frame et l’option row.names.
3. Mêmes consignes qu’à la question 2).
4. Mêmes consignes qu’à la question 2).

44
Frédéric Bertrand et Myriam Maumy SY01 - 2021/2022

5. Pensez à vous servir des crochets de la même manière que lorsque vous utilisez
des matrices et de l’option drop=FALSE.
6. Mêmes consignes qu’à la question 5).
7. Commencez par regarder l’aide sur les opérateurs logiques, puis pensez à
utilisez aussi l’option drop=FALSE.
Problème
1. Utilisez l’opérateur ":".
2. Pensez à vous servir de >.
3. Pensez à vous servir de < ou de ! et de >=.
4. Pensez à vous servir de == ou de <= et de >=.
5. Pensez à vous servir de &&.
6. Pensez à vous servir de |.
7. Pensez à vous servir de ||.
8. Adaptez les commandes indiquées dans l’énoncé pour répondre à la question
suivante.
9. Exécutez les commandes indiquées dans l’énoncé

45

Vous aimerez peut-être aussi