0% ont trouvé ce document utile (0 vote)
2 vues261 pages

R Introduction

Ce document présente une formation sur le langage R, visant à enseigner l'utilisation de RStudio, la programmation de base en R, la manipulation de données et la visualisation graphique. Il aborde les concepts fondamentaux tels que les variables, les fonctions et l'importation de données, ainsi que la recherche de packages sur CRAN. La formation est structurée sur deux jours et demi, avec un programme détaillé pour chaque session.

Transféré par

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

R Introduction

Ce document présente une formation sur le langage R, visant à enseigner l'utilisation de RStudio, la programmation de base en R, la manipulation de données et la visualisation graphique. Il aborde les concepts fondamentaux tels que les variables, les fonctions et l'importation de données, ainsi que la recherche de packages sur CRAN. La formation est structurée sur deux jours et demi, avec un programme détaillé pour chaque session.

Transféré par

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

Introduction au langage R

Aurélien Barré / Benjamin Dartigues


Mai 2024
Organisation et présentation

❏ Quelles sont vos attentes ?

❏ Planning de ces 2 jours et demi

Introduction au langage R
Objectifs de la formation

❏ Appréhender R en se servant de RStudio, rechercher des packages


❏ Avoir les bases de programmation en R

❏ Savoir reconnaître, manipuler, combiner les variables

❏ Comprendre la construction de fonctions

❏ Manipuler, transformer et extraire de l’information de grands tableaux

❏ Visualiser les données par le biais de graphiques

Introduction au langage R
Objectifs de la journée #1

❏ Appréhender R en se servant de RStudio, rechercher des packages


❏ Avoir les bases de programmation en R

❏ Savoir reconnaître, manipuler, combiner les variables

❏ Comprendre la construction de fonctions

❏ Manipuler, transformer et extraire de l’information de grands tableaux

❏ Visualiser les données par le biais de graphiques

Introduction au langage R
Plan
I. Le langage R
A. Qu’est ce que R?
B. Comment se servir de RStudio?
C. Comment se déplacer dans les dossiers?
D. Où peut-on trouver des ressources?

I. Les variables
A. Qu’est ce qu’une variable?
B. Quels sont les types de variable?
C. Comment combiner les variables en objets plus complexes?

I. Les Fonctions
A. Qu’est ce qu’une fonction?
B. Comment est elle construite?
5 Introduction au langage R
Chapitre
Le langage R2
Qu’est ce que R?
❏ Développé au début des années 1990 par Ross Ihaka et Robert Gentleman

❏ Un langage de programmation
→ Basé sur un langage statistique ( S )
→ Capable de traiter et organiser des jeux de données
→ Permet d’appliquer des tests statistiques
→ Permet de représenter les données graphiquement

❏ Logiciel libre (licence GPL) et multi-plateforme

❏ Une communauté très active qui fournit déjà plus de 4000 extensions et
interagit dans de nombreux forums et conférences

Introduction au langage R
Comment utiliser R? Console

Introduction au langage R
Comment utiliser R? RStudio
Environnement visuel,
intégré et interactif

Introduction au langage R
Structure de RStudio

- Objets/variables créés
Ecrire du code - Code interprété

- Navigateur
- Plots créés
- Packages disponibles
Interpréter du code
- Aides sur les
packages

Introduction au langage R
Structure de RStudio

- Objets/variables créés
Ecrire du code - Code interprété

- Navigateur
- Plots créés
- Packages disponibles
Interpréter du code
- Aides sur les
packages

Introduction au langage R
Naviguer dans les dossiers
Savoir où nous sommes dans l’arborescence des dossiers Indique que
nous regardons
dans “home”

~/ indique que affiche


nous sommes l’ensemble des
dans “home” dossiers/fichiers
présent dans le
répertoire
indiqué

Si nous ne sommes pas dans RStudio il existe la fonction getwd()

Introduction au langage R
Créer un fichier / interpréter du code

créer un
nouveau fichier
R script

Ecrire la sélectionner placer son curseur sur la


commande et copier ligne / sélectionner le code
souhaitée ou à interpréter et appuyer
coller sur “Run”

les # permettent
d’écrire des
commentaires
qui ne seront
pas interprétés

Introduction au langage R
Créer un fichier / interpréter du code
envoyer vers la
console

envoyer vers la
le script

Sélectionner

Introduction au langage R
Changer de répertoire
Indique le
dossier où nous
Attention nous regardons ainsi
sommes que
toujours dans l’arborescence
“home”

Cliquer sur les


dossiers où
l’on veut aller

Introduction au langage R
Changer de répertoire

indique où nous
sommes

Introduction au langage R
L’auto-complétion

Lorsque que l’on écrit, l’utilisation de la touche de tabulation


permet d’afficher les possibilités.

Introduction au langage R
Nous avons appris ...

- RStudio est une interface qui facilite beaucoup la navigation dans l’ordinateur au
travers des dossiers.

- C’est important, il faut comprendre l’architecture des dossiers pour aller chercher les
fichiers de données et pouvoir sauver les résultats dans les répertoires adéquats

Introduction au langage R
Vos données dans R

Nous allons importer un fichier csv de manière


automatique avec R (à la manière d’Excel)

Le but est d’observer comment les données


sont structurée dans R

Introduction au langage R
Vos données dans R

Introduction au langage R
Vos données dans R
Colonne
Nom de colonne

Typage

Lignes ?

Fonctions & Packages

Introduction au langage R
Packages

❏ Les packages sont des boîtes à outils où l’on trouve des fonctions relatives à une question
donnée.

❏ Les fonctions sont accompagnées de description et d’aide.

❏ Des données sont souvent associées pour tester les fonctions.

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages
❏ Utilisation de la fonction biocLite() de BioConductor
> source("[Link]
> biocLite(“[Link]”)

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages
❏ Utilisation de la fonction biocLite() de BioConductor
> source("[Link] >library("BiocManager")
> biocLite("[Link]") > BiocManager::install("[Link]")

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages
❏ Utilisation de la fonction biocLite() de BioConductor
❏ Forum dédié à la bio-informatique and aux packages BioConductor
([Link] - Personne ne peut connaître tous
les packages!

Introduction au langage R
Ressources

❏ R Packages
❏ Quand on installe R, les fonctions basiques “basic” sont disponibles
❏ Dû à la popularité de R, des milliers de packages sont disponibles gratuitement
❏ Où trouver les packages?
❏ Principale ressource: CRAN ([Link]
❏ ~ 10,000 packages organisés en vues.
❏ Fonction principale: [Link]()
❏ Plus de 10 ans d'expérience et plus de 1000 packages
❏ Utilisation de la fonction biocLite() de BioConductor
❏ Forum dédié à la bio-informatique and aux packages BioConductor
([Link] - Personne ne peut connaître tous
les packages!

Introduction au langage R
Nous avons appris ...

- Où trouver les packages contenant des méthodes spécifiques: CRAN,


BioConductor

- Où trouver de l’aide

- Que probablement, si vous vous posez une question, quelqu’un aura déjà proposé
une implémentation, discuté sur un forum, n’hésitez pas à utiliser votre moteur de
recherche internet en tapant “R” et les mots clés que vous recherchez.

Introduction au langage R
Chapitre
Les variables2
Interprétons du code

chevron

Que se passe si vous tapez le nombre 42 dans la console ?

Introduction au langage R
Interprétons du code

signifie que c'est le premier


élément de réponse renvoyé

Introduction au langage R
Interprétons du code

signifie que c'est le premier


élément de réponse renvoyé

Nous allons maintenant utiliser RStudio comme une


calculatrice: diviser, multiplier, additionner, soustraire etc

Introduction au langage R
Interprétons du code

Rappel: les # permettent d’écrire des


commentaires qui ne seront pas interprétés

A utiliser sans restriction car ils permettent de se


rappeler ce à quoi sert le code!

Introduction au langage R
Interprétons du code

Le code est interprété puis


perdu

Introduction au langage R
Qu’est ce qu’une variable?
variable = espace de stockage de valeurs

>

console cases mémoire de


l’ordinateur (espace fini)
Introduction au langage R
Déclarer une variable
Déclaration = nommer la variable afin
de pouvoir l’utiliser

>

console cases mémoire de


l’ordinateur (espace fini)
Introduction au langage R
Déclarer une variable
Déclaration = nommer la variable afin
de pouvoir l’utiliser

> - Le choix du nom d’une variable est important. Il


est conseillé de le choisir explicite, court et
unique.
- Il est préférable de garder le même style tout au
long du script: nomDeVariable, nom_de_variable,
[Link] (dans d’autre langage le point est
interdit car il sert à appeler des fonctions).

Règle 1: ne peut pas commencer par un chiffre.


Règle 2: ne peut pas contenir de caractères
spéciaux: & “ ‘ / \ @ $ () [] {}, tous les opérateurs
mathématiques et la ponctuation
Règle 3: sensible à la casse: nom ≠ Nom
console cases mémoire de
l’ordinateur (espace fini)
Introduction au langage R
Déclarer une variable
# On veut stocker le nombre de Déclaration = nommer la variable afin
réplicats (3) pour l’échantillon P240 de pouvoir l’utiliser

> - Le choix du nom d’une variable est important. Il


est conseillé de le choisir explicite, court et
unique.
- Il est préférable de garder le même style tout au
long du script: nomDeVariable, nom_de_variable,
[Link] (dans d’autre langage le point est
interdit car il sert à appeler des fonctions).

Règle 1: ne peut pas commencer par un chiffre.


Règle 2: ne peut pas contenir de caractères
spéciaux: & “ ‘ / \ @ $ () [] {}, tous les opérateurs
mathématiques et la ponctuation
Règle 3: sensible à la casse: nom ≠ Nom
console

Introduction au langage R
Déclarer une variable
# On veut stocker le nombre de Déclaration = nommer la variable afin
réplicats (3) pour l’échantillon P240 de pouvoir l’utiliser

>nombre_de_replicats_pour_echantill - Le choix du nom d’une variable est important. Il


on_P240 # c’est explicite mais un peu est conseillé de le choisir explicite, court et
long unique.
- Il est préférable de garder le même style tout au
long du script: nomDeVariable, nom_de_variable,
[Link] (dans d’autre langage le point est
interdit car il sert à appeler des fonctions).

Règle 1: ne peut pas commencer par un chiffre.


Règle 2: ne peut pas contenir de caractères
spéciaux: & “ ‘ / \ @ $ () [] {}, tous les opérateurs
mathématiques et la ponctuation
Règle 3: sensible à la casse: nom ≠ Nom
console

Introduction au langage R
Déclarer une variable
# On veut stocker le nombre de Déclaration = nommer la variable afin
réplicats pour l’échantillon P240 de pouvoir l’utiliser

>P240_nb_rep ## par exemple - Le choix du nom d’une variable est important. Il


est conseillé de le choisir explicite, court et
unique.
- Il est préférable de garder le même style tout au
long du script: nomDeVariable, nom_de_variable,
[Link] (dans d’autre langage le point est
interdit car il sert à appeler des fonctions).

Règle 1: ne peut pas commencer par un chiffre.


Règle 2: ne peut pas contenir de caractères
spéciaux: & “ ‘ / \ @ $ () [] {}, tous les opérateurs
mathématiques et la ponctuation
Règle 3: sensible à la casse: nom ≠ Nom
console

Introduction au langage R
Déclarer une variable
# On veut stocker le nombre de Déclaration = nommer la variable afin
réplicats (3) pour l’échantillon P240 de pouvoir l’utiliser

>P240_nb_rep ## par exemple - Le choix du nom d’une variable est important. Il


est conseillé de le choisir explicite, court et
unique.
> - Il est préférable de garder le même style tout au
long du script: nomDeVariable, nom_de_variable,
Pour qu’une variable soit créée, [Link] (dans d’autre langage le point est
il faut lui donner une valeur. interdit car il sert à appeler des fonctions).

Règle 1: ne peut pas commencer par un chiffre.


Règle 2: ne peut pas contenir de caractères
spéciaux: & “ ‘ / \ @ $ () [] {}, tous les opérateurs
mathématiques et la ponctuation
Règle 3: sensible à la casse: nom ≠ Nom
console

Introduction au langage R
Assigner une valeur dans une variable
# On veut stocker le nombre de Assignation = stocker les valeurs
réplicats (3) pour l’échantillon P240 dans une case mémoire

> P240_nb_rep ## par exemple

> P240_nb_rep

Tips : Si vous voulez re-taper


une commande que vous
venez d’interpréter, vous
pouvez utiliser la flèche ↑ de
votre clavier et ainsi la rejouer
ou la modifier

console

Introduction au langage R
Assigner une valeur dans une variable
# On veut stocker le nombre de
réplicats (3) pour l’échantillon P240
déclaration P240_nb_rep

> P240_nb_rep ## par exemple 3

assignation
> P240_nb_rep ← 3

L’assignation se fait
via
← ou =
les 2 sont équivalents

console

Introduction au langage R
Assigner une valeur dans une variable
# On veut stocker le nombre de
réplicats (3) pour l’échantillon P240
déclaration P240_nb_rep

> P240_nb_rep ## par exemple 3

assignation
> P240_nb_rep ← 3

L’assignation se fait
via
← ou =
les 2 sont équivalents

console

Introduction au langage R
Manipuler une variable
# On veut afficher le contenu de la
variable P240_nb_rep appel
P240_nb_rep

> P240_nb_rep retourne le 3


[1] 3 contenu

console

Introduction au langage R
Manipuler une variable
# On veut assigner le contenu de
P240_nb_rep à une nouvelle variable
P240_nb_rep x
appel

> P240_nb_rep 3 3
[1] 3 e le
retourn
> x ← P240_nb_rep conten u

déclare une nouvelle variable x et lui assigne la


valeur contenu dans P240_nb_rep

console

Introduction au langage R
Manipuler une variable
# On veut assigner le contenu de
P240_nb_rep à une nouvelle variable
P240_nb_rep x
appel

> P240_nb_rep 3 3
[1] 3 e le
retourn
> x ← P240_nb_rep conten u

déclare une nouvelle variable x et lui assigne la


valeur contenu dans P240_nb_rep

console

Introduction au langage R
Manipuler une variable
# On a produit un réplicat de plus et l’on veut
changer la valeur de P240_nb_rep
P240_nb_rep x

l
appe
> P240_nb_rep 3 3
[1] 3
> x ← P240_nb_rep
retourne le
> P240_nb_rep + 1 contenu

[1] 4

Ici nous affichons juste le résultat


de l’opération durant laquelle nous
ajoutons 1 à la valeur contenu
dans P240_nb_rep. Si nous
voulons le garder nous devons
l’affecter
console

Introduction au langage R
Manipuler une variable
# On a produit un réplicat de plus et l’on veut
changer la valeur de P240_nb_rep
P240_nb_rep x

l
appe
> P240_nb_rep 4 3
[1] 3
> x ← P240_nb_rep
retourne le
> P240_nb_rep + 1 contenu

[1] 4
> P240_nb_rep ← P240_nb_rep + 1

- La valeur précédente a été écrasée, elle


est perdue.

- x et P240_nb_rep ne sont pas liées !

console

Introduction au langage R
Manipuler une variable
# On a produit un réplicat de plus et l’on veut
changer la valeur de P240_nb_rep
P240_nb_rep x

l
appe
> P240_nb_rep 4 3
[1] 3
> x ← P240_nb_rep
retourne le
> P240_nb_rep + 1 contenu

[1] 4
> P240_nb_rep ← P240_nb_rep + 1
> P240_nb_rep
[1] 4

console

Introduction au langage R
Variables existantes

P240_nb_rep x pi Test

> P240_nb_rep 3.1415


4 3 TRUE
[1] 3 93
> x ← P240_nb_rep y

abcde
> P240_nb_rep + 1
[1] 4
> P240_nb_rep ← P240_nb_rep + 1
> P240_nb_rep
[1] 4

console

Introduction au langage R
Nous avons appris ...

- Que nous pouvons interpréter du code et soit afficher, soit stocker le résultat afin
de le réutiliser

- Qu'une variable est un espace alloué dans la mémoire que nous nommons
(déclaration) et à qui nous affectons une valeur grâce à ← ou =

- Que nous pouvons à tout moment appeler la variable par son nom et utiliser son
contenu

- Que nous pouvons affecter une nouvelle valeur à variable , ce qui entraîne la perte
de la valeur qui y était stockée

Introduction au langage R
Types de variables

Nous pouvons stocker plusieurs types d'objet ou de structures de données dans


une variable:

• des structures simples


• des structures complexes telles que les tableaux, matrices, vecteurs ou listes.

C'est ce que l'on appelle le type d'une variable.

C’est une notion importante en programmation et d'autant plus en R car le langage


est parfois assez capricieux avec le typage des variables.

Introduction au langage R
Types de variables: briques élémentaires

Type Description

numeric / integer nombres décimaux / entiers

character / string caractères / chaînes de caractères

logic / boolean logiques, comparaison

autres types NA, NULL

Introduction au langage R
Types de variables: briques élémentaires

Type Description

numeric / integer nombres décimaux / entiers

character / string caractères / chaînes de caractères

logic / boolean logiques, comparaison

autres types NA, NULL

Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube

Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube
# attribuer les nombres aux variables
>a←1
équivaut >a←b←1
>b←1 > a ← 1; b ← 1; c ← 6
à >c←6
>c←6
le point virgule sert à écrire Si vous assignez une même
consécutivement plusieurs valeur à plusieurs variables
commandes sur la même ligne vous pouvez faire l’assignation
en une commande.
Peut être utilisé lorsque que
l’on initialise des variables
Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube

> a ← 1; b ← 1; c ← 6
# calculer la moyenne
> (a+b+c) / 3

Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube

> a ← 1; b ← 1; c ← 6 Nous commençons toujours par


# calculer la moyenne ce qui se trouve entre les
> (a+b+c) / 3 parenthèses les plus internes.
# multiplier a et la moyenne On parle d’encapsulation. Nous
de a, b et # c puis mettre au ré-utiliserons ce concept lors de
carré l’utilisation des fonctions.
> (a*(a+b+c) / 3)^2

Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube

> a ← 1; b ← 1; c ← 6
# calculer la moyenne # calculer la moyenne
> (a+b+c) / 3 > moyenne ← (a+b+c) / 3
# multiplier a et la moyenne # multiplier a et la moyenne de a, b et
de a, b et # c puis mettre au # c puis mettre au carré
carré > (a*moyenne)^2
> (a*(a+b+c) / 3)^2

Introduction au langage R
Les nombres entiers et décimaux: opérations et priorité

Nous pouvons y appliquer toutes les opérations mathématiques


Comme en algèbre, la priorité est () >> ^ >> %% %/% >> */ >> +-

Créer 3 variables a, b et c contenant respectivement 1, 1 et 6:


- calculer la moyenne
- multiplier a et la moyenne de a, b et c puis mettre au carré
- diviser c par a au cube

> a ← 1; b ← 1; c ← 6
# calculer la moyenne
> (a+b+c) / 3
# multiplier a et la moyenne de a, b et # c puis mettre au carré
> (a*(a+b+c) / 3)^2
# diviser c par a au cube
> c/a^3

Introduction au langage R
Les nombres entiers et décimaux: découverte des fonctions existantes

Nous savons manipuler des nombres, des variables contenant des


nombres dans cette super calculatrice

Pour aller plus loin nous avons besoin d’automatiser des outils
- Mathématiques (moyenne, somme, distribution …)
- Pratiques (importer des donner, exporter …)

↳ Automatisation grâce aux fonctions !


↳ Support grâce aux l’aide de R!

Introduction au langage R
Découverte des fonctions existantes: définition et appel

Informations dont la
fonction à besoin
pour travailler
Mêmes règles que
pour le choix du
nom des variables
nom_de_la_fonction( arguments )

Les parenthèses
indiquent que nous
appelons une fonction

Introduction au langage R
Découverte des fonctions existantes: fonction sqrt() _square root_

Que fait la fonction sqrt()?


De combien d’arguments a-t’elle besoin?
Dans quel package est-elle implémentée?

Pour répondre à ces questions nous allons utiliser l’aide !

Introduction au langage R
Découverte des fonctions existantes: fonction sqrt() _square root_

Que fait la fonction sqrt()?


De combien d’arguments a-t’elle besoin?
Dans quel package est-elle implémentée?

# le point d'interrogation avant le nom


# de la fonction
> ?sqrt
# la fonction help()
> help(sqrt)

Même avec beaucoup d’expérience


nous nous référons souvent à l’aide
fournie avec les méthodes.

Introduction au langage R
Découverte des fonctions existantes: fonction sqrt() _square root_

x est le nom de Si vous avez une


l’argument et il est variable nommée x
interne à la fonction elle n’est pas reliée
sqrt ( x ) à l’argument

Introduction au langage R
Découverte des fonctions existantes: fonction sqrt() _square root_

# la complétion va proposer tous ses arguments existants


> sqrt(x= )
# la fonction sqrt() prend un seul argument x qui doit être numérique
> sqrt(x=25) # on affecte (signe =) 25 à x
[1] 5
# comme il n’y a qu’un seul argument nous pouvons nous dispenser de mettre son nom
> sqrt(25)
[1] 5
> a ← 25 # on affecte 25 à a et on l’utilise dans la fonction Le résultat renvoyé par une
> sqrt(a) fonction s’appelle le retour.
[1] 5 On dit qu’une fonction
> sqrt(x=a) retourne un résultat
[1] 5

Introduction au langage R
Découverte des fonctions existantes: fonction log() _logarithme_

La fonction log(x,base) prend 2


arguments
- x à qui nous affectons une
valeur numérique
- base qui possède une valeur
par défaut qui permet de
calculer le logarithme
népérien

Introduction au langage R
Découverte des fonctions existantes: fonction log() _logarithme_

Donc la fonction log(x,base) prend 2 arguments


- x à qui nous affectons une valeur numérique
- base qui possède une valeur par défaut qui permet de calculer le logarithme népérien
↳ cet argument est donc facultatif si la valeur par défaut nous convient

log ( x , base = exp(1) )


Calculer le logarithme
népérien de 10 Calculer le logarithme
de base 2 de 10

Introduction au langage R
Découverte des fonctions existantes: fonction log() _logarithme_

La fonction log(x,base) prend 2 arguments


- x à qui nous affectons une valeur numérique
- base qui possède une valeur par défaut qui permet de calculer le logarithme népérien
↳ cet argument est donc facultatif si la valeur par défaut nous convient

# Plusieurs écritures sont possibles si nous voulons calculer un logarithme népérien


> log(x= 10) # nous pouvons préciser que nous affectons 10 l’argument x
> log(10) # le seul argument à renseigner est x, R va par défaut lui affecter la valeur
# Si nous voulons changer la base du logarithme, par exemple utiliser une base 2
> log(x=10, base=2) Lorsque nous nommons tous les arguments, l’ordre n’a pas
> log(base=2,x=10) d’importance

> log(x=10,2)
> log(10,base=2) Ici nous n’avons que 2 arguments, si nous n’en nommons qu’1, R va
> log(base=2,10) affecter la valeur à l’argument restant.
> log(2,x=10)
Si nous ne nommons aucun argument, R va affecter les valeurs aux
> log(10,2) arguments dans l’ordre dans lequel ils ont été définis dans la fonction
> log(2,10)
Introduction au langage R
Not a Number et Infini

# logarithme de nombres négatifs


> log(-5)
[1] NaN
# logarithme de 0
> log(0)
[1] -Inf
# multiplication par l’infini
> -Inf * 9
[1] -Inf
> -Inf * -9
[1] Inf
# Division par zéro
> 42 / 0
[1] Inf
> 0/0
[1] NaN

Introduction au langage R
Découverte des fonctions existantes: fonction log() _logarithme_ et ses alias

Lorsqu’une fonction est souvent utilisée avec des valeurs


spécifiques (par exemple les logarithmes de base 2 et 10 sont
très utilisés en bio-informatique), les développeurs proposent
des alias (ou wrapper) qui appellent la fonction existante en
lui spécifiant d’autres paramètres que ceux par défaut.

Le but est de simplifier le code ce qui aide à la lisibilité et de


ne pas répéter inutilement les mêmes choses.

Ici, log2(x) et log10(x)

> log(10,2) > log(2,10)


[1] 3.321928 [1] 0.30103
> log2(10) > log10(2)
[1] 3.321928 [1] 0.30103

Ici, l’économie d’écriture est faible mais on verra des fonctions


pour lesquelles les alias de fonctions simplifient nos vie
Introduction au langage R
Nous avons appris ...

- A créer et manipuler des variables de type numérique

- A utiliser des fonctions existantes simples et manipuler ses arguments

↳ appel par son nom et l’ouverture de parenthèses


qui donne accès à son/ses argument(s)

↳ affectation de valeurs aux arguments

↳ importance de l’ordre des arguments


(sans importance si le nom des l’arguments est spécifié, indispensable sinon)

Introduction au langage R
Types de variables: briques élémentaires

Type Description

numeric / integer nombres décimaux / entiers

character / string caractères / chaînes de caractères

logic / boolean logiques, comparaison

autres types NA, NULL

Introduction au langage R
Les caractères et chaînes de caractères

Un ou plusieurs éléments entourés de guillemets simples ou doubles


Attention on est aussi sensible à la casse (minuscule / majuscule)

Créons une variable a contenant la chaîne de caractères: Sample.S1

Introduction au langage R
Les caractères et chaînes de caractères

Un ou plusieurs éléments entourés de guillemets simples ou doubles


Attention on est aussi sensible à la casse (minuscule / majuscule)

Créons une variable a contenant la chaîne de caractères: Sample.S1

> a ← ‘Sample.S1’ équivaut à > a ← “Sample.S1”

“Sample.S1”

Introduction au langage R
Les caractères et chaînes de caractères

Un ou plusieurs éléments entourés de guillemets simples ou doubles


Attention on est aussi sensible à la casse (minuscule / majuscule)

Créons une variable a contenant la chaîne de caractères: Sample.S1

Créons une variable c contenant la chaîne de caractères: les “guillemets” sont spéciaux

Introduction au langage R
Les caractères et chaînes de caractères

Un ou plusieurs éléments entourés de guillemets simples ou doubles


Attention on est aussi sensible à la casse (minuscule / majuscule)

Créons une variable a contenant la chaîne de caractères: Sample.S1

Créons une variable c contenant la chaîne de caractères: les “guillemets” sont spéciaux

> c ← “les “guillemets” sont spéciaux”


Erreur : unexpected symbol in ""les "guillemets"
> c ← “les \“guillemets\” sont spéciaux”
> c
[1] "les \"guillemets\" sont spéciaux"

On utilise les anti-slash pour


échapper les caractères spéciaux

Introduction au langage R
Les caractères et chaînes de caractères

Un ou plusieurs éléments entourés de guillemets simples ou doubles


Attention on est aussi sensible à la casse (minuscule / majuscule)

Créons une variable a contenant la chaîne de caractères: Sample.S1

Créons une variable c contenant la chaîne de caractères: les “guillemets” sont spéciaux

> c ← “les “guillemets” sont spéciaux”


Erreur : unexpected symbol in ""les "guillemets"
> c ← “les \“guillemets\” sont spéciaux” On appelle caractères spéciaux les
> c symboles qui peuvent-être
[1] "les \"guillemets\" sont spéciaux" interprétés différemment d’un
caractère.
On utilise les anti-slash pour
échapper les caractères spéciaux

Introduction au langage R
Types de variables: briques élémentaires

Type Description

numeric / integer nombres décimaux / entiers

character / string caractères / chaînes de caractères

logical / boolean logiques, comparaison

autres types NA, NULL

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

C’est le résultat d’une comparaison

égalité et différence
== et !=

> 5 == 5 # 5 est égal à 5


[1] TRUE
> 5 != 5 # 5 est différent de 5
[1] FALSE
# ça marche aussi avec les caractères
> “A” == “a” # “A” est égal à “a”
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs
Attention !
== signifie une > TRUE # qui équivaut à T
comparaison > FALSE # qui équivaut à F
= est le signe
d’affectation C’est le résultat d’une comparaison

égalité et différence
== et !=

> 5 == 5 # 5 est égal à 5


[1] TRUE
> 5 != 5 # 5 est différent de 5
[1] FALSE
# ça marche aussi avec les caractères
> “A” == “a” # “A” est égal à “a”
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs
Attention !
== signifie une > TRUE # qui équivaut à T
comparaison > FALSE # qui équivaut à F
= est le signe
d’affectation C’est le résultat d’une comparaison

le point égalité et différence


d’exclamation
== et !=
signifie la négation

> 5 == 5 # 5 est égal à 5


[1] TRUE
> 5 != 5 # 5 est différent de 5
[1] FALSE
# ça marche aussi avec les caractères
> “A” == “a” # “A” est égal à “a”
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs
Attention !
== signifie une > TRUE # qui équivaut à T
comparaison > FALSE # qui équivaut à F
= est le signe
d’affectation C’est le résultat d’une comparaison

le point égalité et différence infériorité et supériorité


d’exclamation
== et != > ou >= et < ou <=
signifie la négation

> 5 == 5 # 5 est égal à 5 > 5 >= 5 # 5 est supérieur ou égal à 5


[1] TRUE [1] TRUE
> 5 != 5 # 5 est différent de 5 > 5 > 5 # 5 est strictement supérieur à 5
[1] FALSE [1] FALSE
# ça marche aussi avec les caractères > !(5>5) # 5 n’est pas strictement supérieur à 5
> “A” == “a” # “A” est égal à “a” # ça marche aussi avec les caractères mais la
# comparaison directe n’a pas de sens
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs
Attention !
== signifie une > TRUE # qui équivaut à T
comparaison > FALSE # qui équivaut à F
= est le signe
d’affectation C’est le résultat d’une comparaison

le point égalité et différence Il se pourrait que nous


infériorité voulions ordonner des noms
et supériorité
d’exclamation de gènes, il faut donc avoir conscience qu’il y a une
== et != hiérarchie.> ou >= et < ou <=
signifie la négation
1. les signes/ la ponctuation
> 5 == 5 # 5 est égal à 5 > 2.
5 >=les
5 nombres
# 5 est supérieur ou égal à 5
[1] TRUE [1][Link]
les caractères majuscules
> 5 != 5 # 5 est différent de 5 > 4.
5>5 les#caractère minuscules
5 est strictement supérieur à 5
[1] FALSE [1] FALSE
# ça marche aussi avec les caractères exemple:
> !(5>5) #“A-1” < “A2M”
5 n’est < “AR” < “Ar”
pas strictement supérieur à 5
> “A” == “a” # “A” est égal à “a” # ça marche aussi avec les caractères mais la
# comparaison directe n’a pas de sens
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un test via des fonctions !

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !

Créons une variable a dont on veut tester le type

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !

Créons une variable a dont on veut tester le type

> a ← “Que suis-je ?”


is. suivit d’un type (ou
d’une classe) va tester
si la variable est du type
spécifié

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !

Créons une variable a dont on veut tester le type

> a ← “Que suis-je ?”


# Est-ce un numérique ? is. suivit d’un type (ou
d’une classe) va tester
si la variable est du type
spécifié

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !

Créons une variable a dont on veut tester le type

> a ← “Que suis-je ?”


# Est-ce un numérique ? is. suivit d’un type (ou
> [Link](a) d’une classe) va tester
[1] FALSE si la variable est du type
spécifié

Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !

Créons une variable a dont on veut tester le type

> a ← “Que suis-je ?”


# Est-ce un numérique ? is. suivit d’un type (ou
> [Link](a) d’une classe) va tester
[1] FALSE si la variable est du type
> [Link](a) spécifié
[1] TRUE
> [Link](a)
[1] FALSE
Introduction au langage R
Les booléens ou éléments logiques
Expression ou élément pouvant prendre 2 valeurs

> TRUE # qui équivaut à T


> FALSE # qui équivaut à F

Ils peuvent aussi être le résultat


d’un teste via des fonctions !
# la fonction class()
Créons une variable a dont on veut tester le type retourne le type de
la variable testée
> a ← “Que suis-je ?”
# Est-ce un numérique ?
>class(a)
> [Link](a)
[1] “character”
[1] FALSE
> [Link](a)
> [Link](a)
[1] TRUE
# équivaut à
> [Link](a)
> class(a) == “character”
[1] FALSE
Introduction au langage R
Nous avons appris ...

- A créer et manipuler des variables de type numérique, caractère et logique qui sont
en fait les briques élémentaires qui vont servir à construire des objets plus
complexes

- A tester le type d’une variable

- Que R “reconnait” le type de variable : on dit que le typage des variables est
implicite

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant : 42, “Bonjour”, “9.3” et TRUE

Pouvez vous me dire de quel type sont ces variables ?

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en caractère
>

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en caractère
> [Link](a)
[1] “42”
> [Link](a)
[1] FALSE
# Si l’on veut garder la transformation nous devons
affecter le résultat à la variable a
> a ← [Link](a)
> [Link](a)
[1] TRUE

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en caractères
> [Link](a)
[1] “42”
> [Link](a)
[1] FALSE
# Si l’on veut garder la transformation nous devons
affecter le résultat à la variable a
> a ← [Link](a)
> [Link](a)
[1] TRUE
> [Link](d)
[1] “TRUE”

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
>

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c)
[1] 9.3
> [Link](b)

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c)
[1] 9.3
> [Link](b)
[1] NA
Warning message:
NAs introduits lors de la conversion automatique
>

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c)
[1] 9.3
> [Link](b)
[1] NA
Warning message:
NAs introduits lors de la conversion automatique
> [Link](d)

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c)
[1] 9.3
> [Link](b)
[1] NA
Warning message:
NAs introduits lors de la conversion automatique
> [Link](d)
[1] 1
>

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c)
[1] 9.3
> [Link](b)
[1] NA
Warning message:
NAs introduits lors de la conversion automatique
> [Link](d)
[1] 1
> [Link](FALSE)

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en numérique
> [Link](c) Les éléments logiques sont
[1] 9.3 encodés par les numériques 0
> [Link](b) et 1. Cela veut dire qu’ils
[1] NA peuvent-être interprétés comme
Warning message: des nombres et que l’on peut
NAs introduits lors de la conversion automatique appliquer des fonctions
> [Link](d) spécifiques aux numériques.
[1] 1
> [Link](FALSE)
[1] 0

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en entier
> [Link](c)

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en entier
> [Link](c)
[1] 9

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en booléen, ici les règles sont plus
définies
> [Link](b)

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

> a ← 42; b ← “Bonjour”; c ← “9.3”; d ← TRUE


# Transformer en booléen, ici les règles sont plus
définies
> [Link](b)
[1] NA
Warning message:
NAs introduits lors de la conversion automatique
# A part d nous n’obtiendrons que des NA

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

Valeur transformation en logique

0 FALSE

Tout autre nombre TRUE

“F” ou “FALSE” FALSE

“T” ou “TRUE” TRUE

Toute autre chaîne de NA


caractères

Introduction au langage R
Modifier le type d’une variable
Nous utilisons des fonctions dont le nom commence toujours par as. suivi du type désiré.
Créons 4 variables, a, b, c et d contenant: 42, “Bonjour”, “9.3” et TRUE

Valeur transformation en logique

0 FALSE

Tout autre nombre TRUE

“F” ou “FALSE” FALSE

“T” ou “TRUE” TRUE

Toute autre chaîne de NA NA : Not Available


caractères donnée manquante

Introduction au langage R
Types de variables: briques élémentaires

Type Description

numeric / integer nombres décimaux / entiers

character / string caractères / chaînes de caractères

logical / boolean logiques, comparaison

autres types NA, NULL

Introduction au langage R
Not Available et NULL
Créon 2 variables a et b contenant l’une NA et
l’autre NULL
a b

> a ← NA
> b ← NULL

console cases mémoire de


l’ordinateur (espace fini)
Introduction au langage R
Not Available et NULL
Créon 2 variables a et b contenant l’une NA et
l’autre NULL
a b

> a ← NA
NA
> b ← NULL

console cases mémoire de


l’ordinateur (espace fini)
Introduction au langage R
Not Available et NULL
- NA est utilisé lorsque la valeur n'existe pas ou n'est pas définie.
- Par exemple, si vous avez une expérience avec plusieurs mesures mais qu'une
est manquante vous utiliserez alors le type NA.

> NA + 6
[1] NA

- une fonction renvoie la valeur NA quand le résultat est quelque chose qui
n'existe pas.

> [Link](“Hello”)
[1] NA

- On peut tester si nous notre valeur est un NA

> [Link]([Link](“Hello”)) > ![Link]([Link](“Hello”))


[1] TRUE [1] FALSE

Introduction au langage R
Not Available et NULL

- NULL désigne une valeur nulle.


- Permet de créer une variable vide ce qui peut servir si l’on veut initialiser une
variable sans spécifier de type.
- NULL n’est pas 0

> NULL + 6
[1] integer(0)

- Certaines fonctions peuvent renvoyer une variable NULL

# cette fonction permet de retourner les dimensions d’objets à plusieurs dimensions


# or 6 n’a qu’une dimension ...
> dim(6)
[1] NULL
> [Link](dim(6)) # on peut tester si la variable est vide
[1] TRUE

Introduction au langage R
Nous avons appris … beaucoup de choses

Nous avons vu les rudiments du langage R :


● Exécuter du code

● Effectuer des calculs élémentaires

● Stocker des valeurs dans des variables

● Utiliser des fonctions basiques

● Manipuler les briques élémentaires de tout type

Introduction au langage R
Pour fêter ça … QUIZZ
Laquelle de ces valeurs n’existe pas ? NA, NULL … ou les 2 ?
a. “Le chat dans la boîte” … n’occupe pas d’espace
b. 42 … non utilisable dans une opération
c. NULL … peut être présent dans mes données
d. NA … peut être retourné par une fonction

Dans ma logique je vaux 1 mais ça ne Je retourne une erreur ...


se voit pas. Qui suis-je ? a. FALSE + TRUE
b. [Link](‘1’) + 1
c. [Link](‘Inf’) * T
d. [Link](‘Inf’) * 8
Mon résultat vaut 3 ...
a. log(10^3)
b. log(10,1000) Mon premier argument = ‘X’
c. log10(10^3) Mon second argument = ‘’
d. log(2,8) Mon troisième argument = ‘BXrXaXvXoX’
Mon retour est le résultat de la fonction gsub()*
* Vous pouvez vous servir de l’aide ...

Introduction au langage R
Manipulons les chaînes de caractères
Créons une variable a contenant la chaîne de caractères : Sample.S1

a
“Sample.S1”

Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

nchar(a)

nombre de
caractères
a
“Sample.S1”

Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

nchar(a)

nombre de
caractères
a
“Sample.S1”
ch
a ng
er
la
ca
s se

toupper(a) tolower(a)

“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”

nchar(a) sub(pattern=“S”,
replacement=“s”,x=a)

nombre de
caractères
r
titue
a subs
“Sample.S1”
ch
a ng
er
la
ca
s se

toupper(a) tolower(a)

“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”
“sample.s1”
nchar(a) sub(pattern=“S”, global
replacement=“s”,x=a)
gsub(pattern=“S”,

nombre de
caractères
replacement=“s”,x=a)
r
titue
a subs
“Sample.S1”
ch
a ng
er
la
ca
s se

toupper(a) tolower(a)

“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”
“sample.s1”
nchar(a) sub(pattern=“S”, global
replacement=“s”,x=a)
gsub(pattern=“S”,

nombre de
caractères
replacement=“s”,x=a)
r
titue
a subs
“Sample.S1”

s-ch une
ch

e
a în
a

sou pérer
ng
er
la

u
ca

réc
s se
substr(start=3,
stop=5,x=a)

toupper(a) tolower(a)

“mpl”
“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”
“sample.s1”
nchar(a) sub(pattern=“S”, global
replacement=“s”,x=a)
gsub(pattern=“S”,

nombre de
caractères
replacement=“s”,x=a)
r
titue
a subs
“Sample.S1” chercher les positions

s-ch une
ch

e
a în
a

sou pérer
ng
er
la

u
ca regexpr(pattern=“S”,
réc
s se
substr(start=3, text=a)
stop=5,x=a)
1
toupper(a) tolower(a)

“mpl”
“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”
“sample.s1”
nchar(a) sub(pattern=“S”, global
replacement=“s”,x=a)
gsub(pattern=“S”,

nombre de
caractères
replacement=“s”,x=a)
r
titue
a subs
“Sample.S1” chercher les positions
gregexpr(pattern=“S”,
text=a) 1 8

s-ch une
ch

e
a în
a

sou pérer
ng
er
la

u
ca regexpr(pattern=“S”,
réc
s se
substr(start=3, text=a)
stop=5,x=a)
1
toupper(a) tolower(a)

“mpl”
“SAMPLE.S1” “sample.s1”
Introduction au langage R
Les caractères et chaînes de caractères : mémo fonctions de base

9 “sample.S1”
“sample.s1”
nchar(a) sub(pattern=“S”, global
replacement=“s”,x=a)
gsub(pattern=“S”,

nombre de
caractères
replacement=“s”,x=a)
r
titue
b a subs
2018 “Sample.S1” chercher les positions
gregexpr(pattern=“S”,
text=a) 1 8
es

s-ch une
r
des caténe
iabl

ch

e
a în
a

sou pérer
ng
var

er
co n

la

u
ca regexpr(pattern=“S”,
réc
s se
substr(start=3, text=a)
paste(a, b,sep=”.”)
stop=5,x=a)
1
toupper(a) tolower(a)
“Sample.S1.2018”
“mpl”
“SAMPLE.S1” “sample.s1”
Introduction au langage R
Comment feriez vous ?
Créez une variable nommée [Link] contenant le nom d’un fichier:
genomic_coordinates_hg19.txt

• Créez une nouvelle variable nommée [Link] contenant le nom du fichier sans
l’extension “.txt”. Vous utiliserez la fonction sub().

• Afficher la version de génome dans la console. Pour cela vous devez respecter les contraintes
suivantes:
• Utiliser les fonctions suivantes : nchar() et substr()
• Ecrire en une seule ligne de code

• Concaténez la date à la variable [Link] en la séparant de 2 points. Vous pouvez


utiliser la fonction date().

Introduction au langage R
Combiner les variables : structures complexes

classe Description

vector 1 dimension, 1 type

facteur 1 dimension, catégoriel

matrices / arrays 2 dimensions et plus, 1 type

[Link] 2 dimensions, 1 type / colonne

list 1 dimension, 1 type ou plus

Introduction au langage R
Combiner les variables : structures complexes

classe Description

vector 1 dimension, 1 type

facteur 1 dimension, catégoriel

matrices / arrays 2 dimensions et plus, 1 type

[Link] 2 dimensions, 1 type / colonne

list 1 dimension, 1 type ou plus

Les structures complexes


sont appelées objets et à
partir de maintenant, lorsque
nous parlons de variable il
s’agit du nom de l’objet.
Introduction au langage R
Combiner les variables : structures complexes

classe Description

vector 1 dimension, 1 type

facteur 1 dimension, catégoriel

matrices / arrays 2 dimensions et plus, 1 type

[Link] 2 dimensions, 1 type / colonne

list 1 dimension, 1 type ou plus

Introduction au langage R
Qu’est ce qu’un vecteur ?

Un vecteur est un ensemble d’éléments de même type et de longueur définie.

Introduction au langage R
Qu’est ce qu’un vecteur ?

Un vecteur est un ensemble d’éléments de même type et de longueur définie.

Les attributs sont les


propriétés d’un objet et sont
communs à tous les objets
de même classe.

Introduction au langage R
Qu’est ce qu’un vecteur ?

Un vecteur est un ensemble d’éléments de même type et de longueur définie.

Les attributs sont les


propriétés d’un objet et sont
communs à tous les objets
de même classe.

En fait, en R il n’existe pas d’éléments isolés

Introduction au langage R
Qu’est ce qu’un vecteur ?

Un vecteur est un ensemble d’éléments de même type et de longueur définie.

Les attributs sont les


propriétés d’un objet et sont
communs à tous les objets
de même classe.

En fait, en R il n’existe pas d’éléments isolés

signifie que c'est le premier


élément de réponse renvoyé

Introduction au langage R
Qu’est ce qu’un vecteur ?

Un vecteur est un ensemble d’éléments de même type et de longueur définie.

Les attributs sont les


propriétés d’un objet et sont
communs à tous les objets
de même classe.

En fait, en R il n’existe pas d’éléments isolés

signifie que c'est le premier


élément de réponse renvoyé

C'est en fait le premier élément


d’un vecteur de type numeric
Introduction au langage R
La bonne nouvelle

Nous avons déjà manipuler des vecteurs ...

- Toutes les fonctions que nous avons appliquées aux numériques / caractères / logiques
prennent en fait des vecteurs en argument

- On les utilise donc de la même façon sur des vecteurs de longueur 1 que de longueur 1000.

- Le retour sera en général un vecteur de même longueur que le vecteur en entrée.

Introduction au langage R
Créer des vecteurs avec rep()
Créons un vecteur contenant 10 chaînes de caractères “A”

# En utilisant l’aide de cette fonction, prendre connaissance des arguments


> ?rep
>

Introduction au langage R
Créer des vecteurs avec rep()
Créons un vecteur contenant 10 chaînes caractères “A”

# En utilisant l’aide de cette fonction, prendre connaissance des arguments


> ?rep
> rep(“A”,10)
[1] “A” “A” “A” “A” “A” “A” “A” “A” “A” “A”

Introduction au langage R
Créer des vecteurs avec rep()
Créons un vecteur contenant 10 chaînes caractères “A”

# En utilisant l’aide de cette fonction, prendre connaissance des arguments


> ?rep
> rep(“A”,10)
[1] “A” “A” “A” “A” “A” “A” “A” “A” “A” “A”

Nous pouvons également créer des vecteurs de numériques et de logiques.

Introduction au langage R
Créer des vecteurs avec rep()
Créons un vecteur contenant 10 chaînes caractères “A”

# En utilisant l’aide de cette fonction, prendre connaissance des arguments


> ?rep
> rep(“A”,10)
[1] “A” “A” “A” “A” “A” “A” “A” “A” “A” “A”

Nous pouvons également créer des vecteurs de numériques et de logiques.

> rep(1,3)
[1] 1 1 1
> rep(TRUE,5)
[1] TRUE TRUE TRUE TRUE TRUE

Introduction au langage R
Créer des vecteurs numériques
Il y a 2 façons spécifiques de créer des vecteurs numériques.
Créons la suite de 1 à 9

> 1:9
[1] 1 2 3 4 5 6 7 8 9
> seq(1,9,1) # Quels sont les arguments?
[1] 1 2 3 4 5 6 7 8 9

Introduction au langage R
Créer des vecteurs numériques
Il y a 2 façons spécifiques de créer des vecteurs numériques.
Créons la suite de 1 à 9

> 1:9
[1] 1 2 3 4 5 6 7 8 9
> seq(1,9,1) # Quels sont les arguments?
[1] 1 2 3 4 5 6 7 8 9

Créons maintenant la suite de nombres pairs entre 1 et 20

Introduction au langage R
Créer des vecteurs numériques
Il y a 2 façons spécifiques de créer des vecteurs numériques.
Créons la suite de 1 à 9

> 1:9
[1] 1 2 3 4 5 6 7 8 9
> seq(1,9,1) # Quels sont les arguments?
[1] 1 2 3 4 5 6 7 8 9

Créons maintenant la suite de nombres pairs entre 1 et 20

> seq(2,20,2)
[1] 2 4 6 8 10 12 14 16 18 20

Introduction au langage R
Concaténer plusieurs vecteurs
Nous allons utiliser la fonction c() qui prend un nombre indéterminé d’arguments.
Chacun des arguments donnés est ajouté au nouveau vecteur dans l'ordre dans lequel il a été ajouté

# Créons un vecteur avec les nombres 2,7 et 4 (un nombre est en fait un vecteur de longueur 1)
> c(2, 7, 4)
[1] 2 7 4
# Créons un vecteur avec les chaînes de caractères “boo”, “A” et “zad”
> c(“boo”,”A”,”zad”)
[1] “boo” “A” “zad”

Introduction au langage R
Concaténer plusieurs vecteurs
Nous allons utiliser la fonction c() qui prend un nombre indéterminé d’arguments.
Chacun des arguments donnés est ajouté au nouveau vecteur dans l'ordre dans lequel il a été ajouté

# Créons un vecteur avec les nombres 2,7 et 4 (un nombre est en fait un vecteur de longueur 1)
> c(2, 7, 4)
[1] 2 7 4
# Créons un vecteur avec les chaînes de caractères “boo”, “A” et “zad”
> c(“boo”,”A”,”zad”)
[1] “boo” “A” “zad”

Nous pouvons donc concaténer des vecteurs de longueur > 1

# Créons 2 vecteurs numériques


> v1 ← 1:10
> v2 ← rep(c(0,1),each=3)

Introduction au langage R
Concaténer plusieurs vecteurs
Nous allons utiliser la fonction c() qui prend un nombre indéterminé d’arguments.
Chacun des arguments donnés est ajouté au nouveau vecteur dans l'ordre dans lequel il a été ajouté

# Créons un vecteur avec les nombres 2,7 et 4 (un nombre est en fait un vecteur de longueur 1)
> c(2, 7, 4)
[1] 2 7 4
# Créons un vecteur avec les chaînes de caractères “boo”, “A” et “zad”
> c(“boo”,”A”,”zad”)
[1] “boo” “A” “zad”

Nous pouvons donc concaténer des vecteurs de longueur > 1

# Créons 2 vecteurs numériques


> v1 ← 1:10
> v2 ← rep(c(0,1),each=3)
> v3 ← c(v1,v2)
> v3
[1] 1 2 3 4 5 6 7 8 9 10 0 0 0 1 1 1
Introduction au langage R
Concaténer plusieurs vecteurs
Les vecteurs que nous concaténons doivent-être de même type.

# Créons un vecteur numérique, une vecteur de chaînes de caractères et un vecteur booléen


# Testons !
> v1 ← 1:3
> v2 ← c(“boo”,”A”,”zad”)
> v3 ← logical(3)
# Concaténons v1 et v2, v1 et v3, v2 et v3 puis les 3 vecteurs
>

Introduction au langage R
Concaténer plusieurs vecteurs
Les vecteurs que nous concaténons doivent-être de même type.

# Créons un vecteur numérique, une vecteur de chaînes de caractères et un vecteur booléen


# Testons !
> v1 ← 1:3 La concaténation d’une
> v2 ← c(“boo”,”A”,”zad”) chaîne de caractères
> v3 ← logical(3) entraîne la transformation
# Concaténons v1 et v2, v1 et v3, v2 et v3 puis les 3 vecteurs de tous les éléments en
> chaîne de caractères !
Ceci sera vrai pour tous les
objets dont le type est
contraint (matrices et
arrays).

Introduction au langage R
Concaténer plusieurs vecteurs
Les vecteurs que nous concaténons doivent-être de même type.

# Créons un vecteur numérique, une vecteur de chaînes de caractères et un vecteur booléen


# Testons !
> v1 ← 1:3 La concaténation d’une
> v2 ← c(“boo”,”A”,”zad”) chaîne de caractères
> v3 ← logical(3) entraîne la transformation
# Concaténons v1 et v2, v1 et v3, v2 et v3 puis les 3 vecteurs de tous les éléments en
> c(v1,v2) chaîne de caractères !
[1] “1” “2” “3” “boo” “A” “zad” Ceci sera vrai pour tous les
> c(v2,V3) objets dont le type est
[1] “boo” “A” “zad” “FALSE” “FALSE” “FALSE” contraint (matrices et
> c(v1,v2,v3) arrays).
[1] “1” “2” “3” “boo” “A” “zad” “FALSE” “FALSE” “FALSE”

Introduction au langage R
Concaténer plusieurs vecteurs
Les vecteurs que nous concaténons doivent-être de même type.

# Créons un vecteur numérique, une vecteur de chaînes de caractères et un vecteur booléen


# Testons !
> v1 ← 1:3 La concaténation d’une
> v2 ← c(“boo”,”A”,”zad”) chaîne de caractères
> v3 ← logical(3) entraîne la transformation
# Concaténons v1 et v2, v1 et v3, v2 et v3 puis les 3 vecteurs de tous les éléments en
> c(v1,v2) chaîne de caractères !
[1] “1” “2” “3” “boo” “A” “zad” Ceci sera vrai pour tous les
> c(v2,V3) objets dont le type est
[1] “boo” “A” “zad” “FALSE” “FALSE” “FALSE” contraint (matrices et
> c(v1,v2,v3) arrays).
[1] “1” “2” “3” “boo” “A” “zad” “FALSE” “FALSE” “FALSE”
> c(v1,v3)
[1] 1 2 3 0 0 0 FALSE est encodé par un 0

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids


>

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids et affichons les noms des éléments


> poids ← c(67,89,55,60)
>

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids et affichons les noms des éléments


> poids ← c(67,89,55,60)
>

La fonction names() permet de


consulter ou de mettre à jour le
nom des éléments d’un vecteur. En
appelant seulement la fonction, nous
pouvons consulter ces noms. En y
assignant une valeur, on peut les
mettre à jour.

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids et affichons les noms des éléments


> poids ← c(67,89,55,60)
# Créons le vecteur individus contenant leur prénom
> individus ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”)
> names(poids) ← individus
# Ceci est équivalent à l’attribution directe La fonction names() permet de
> names(poids) ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”) consulter ou de mettre à jour le
# le premier élément du vecteur contenant les noms est nom des éléments d’un vecteur. En
# attribué au premier élément du vecteur poids appelant seulement la fonction, nous
pouvons consulter ces noms. En y
assignant une valeur, on peut les
mettre à jour.

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids et affichons les noms des éléments


> poids ← c(67,89,55,60)
# Créons le vecteur individus contenant leur prénom
> individus ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”)
> names(poids) ← individus
# Ceci est équivalent à l’attribution directe La fonction names() permet de
> names(poids) ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”) consulter ou de mettre à jour le
> poids nom des éléments d’un vecteur. En
appelant seulement la fonction, nous
Pierre Paul Jeanne Agathe pouvons consulter ces noms. En y
67 89 55 60 assignant une valeur, on peut les
mettre à jour.

Introduction au langage R
Nommer les éléments d’un vecteur avec names()
Nommer les éléments d’un vecteur permet d’accéder facilement à son contenu.
Créons un vecteur contenant le poids de 4 individus, Pierre, Paul, Jeanne et Agathe qui pèsent
respectivement 67, 89, 55 et 60 kg.

# Créons le vecteur poids et affichons les noms des éléments


> poids ← c(67,89,55,60)
# Créons le vecteur individus contenant leur prénom
> individus ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”)
> names(poids) ← individus
# Ceci est équivalent à l’attribution directe La fonction names() permet de
> names(poids) ← c(“Pierre”,”Paul”,”Jeanne”,”Agathe”) consulter ou de mettre à jour le
> poids nom des éléments d’un vecteur. En
appelant seulement la fonction, nous
Pierre Paul Jeanne Agathe pouvons consulter ces noms. En y
67 89 55 60 assignant une valeur, on peut les
> names(poids) mettre à jour.
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Les indices numériques sont des entiers allant


de 1 à la longueur du vecteur

1 2 3 4

poids 67 89 55 60
Pierre Paul Jeanne Agathe

Les noms affectés par la fonction names() sont


facultatifs

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Pour pouvoir sélectionner des éléments précis d'un vecteur, il faut spécifier l’indice (numérique ou
nom) des éléments que nous voulons extraire.

# Nous voulons récupérer le poids de Jeanne. Celui-ci correspond au 3ème élément du vecteur
# l’utilisation des crochets [ ] permet d’accéder au contenu du vecteur
> poids
1 2 3 4

67 89 55 60
Pierre Paul Jeanne Agathe

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Pour pouvoir sélectionner des éléments précis d'un vecteur, il faut spécifier l’indice (numérique ou
nom) des éléments que nous voulons extraire.

# Nous voulons récupérer le poids de Jeanne. Celui-ci correspond au 3ème élément du vecteur
# l’utilisation des crochets [ ] permet d’accéder au contenu du vecteur
> poids[“Jeanne”] poids
Jeanne 1 2 3 4

55 67 89 55 60
Pierre Paul Jeanne Agathe

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Pour pouvoir sélectionner des éléments précis d'un vecteur, il faut spécifier l’indice (numérique ou
nom) des éléments que nous voulons extraire.

# Nous voulons récupérer le poids de Jeanne. Celui-ci correspond au 3ème élément du vecteur
# l’utilisation des crochets [ ] permet d’accéder au contenu du vecteur
> poids[“Jeanne”]
poids
Jeanne 1 2 3 4
55 67 89 55 60
> poids[3] Pierre Paul Jeanne Agathe

Jeanne
55

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Pour pouvoir sélectionner des éléments précis d'un vecteur, il faut spécifier l’indice (numérique ou
nom) des éléments que nous voulons extraire.

# Nous voulons récupérer le poids de Jeanne. Celui-ci correspond au 3ème élément du vecteur
# l’utilisation des crochets [ ] permet d’accéder au contenu du vecteur
> poids[“Jeanne”]
poids
Jeanne 1 2 3 4
55 N’oublions pas qu’en R il n’y a 67 89 55 60
> poids[3] pas d’élément isolé, il s’agit Pierre Paul Jeanne Agathe
donc de vecteur de longueur 1
Jeanne
55

Introduction au langage R
Indexation
Les vecteurs sont une suite d’éléments ordonnés.
On dit que les éléments d'un vecteur sont indexés: chaque élément est accessible grâce à un index
numérique ou par un nom qui peut lui être attribué (grâce à names()).

Pour pouvoir sélectionner des éléments précis d'un vecteur, il faut spécifier l’indice (numérique ou
nom) des éléments que nous voulons extraire.

# Nous voulons récupérer le poids de Jeanne. Celui-ci correspond au 3ème élément du vecteur
# l’utilisation des crochets [ ] permet d’accéder au contenu du vecteur
> poids[“Jeanne”]
poids
Jeanne 1 2 3 4
55 N’oublions pas qu’en R il n’y a 67 89 55 60
> poids[3] pas d’élément isolé, il s’agit Pierre Paul Jeanne Agathe
donc de vecteur de longueur 1
Jeanne
55
Nous pouvons accéder à plusieurs
éléments en utilisant un vecteur d’indices

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
> poids[c(2,4)]
Paul Agathe Les éléments sont
renvoyés dans
89 60
l’ordre spécifié
> poids[c(“Agathe”,“Paul”)] dans le vecteur
poids
Agathe Paul d’indices.
1 2 3 4
55 89
67 89 55 60
Pierre Paul Jeanne Agathe

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
> poids[c(2,4)]
Paul Agathe Les éléments sont
renvoyés dans
89 60
l’ordre spécifié
> poids[c(“Agathe”,“Paul”)] dans le vecteur
poids
Agathe Paul d’indices.
1 2 3 4
55 89
67 89 55 60
# On aurait pu utiliser seq() Pierre Paul Jeanne Agathe

>

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
> poids[c(2,4)]
Paul Agathe Les éléments sont
renvoyés dans
89 60
l’ordre spécifié
> poids[c(“Agathe”,“Paul”)] dans le vecteur
poids
Agathe Paul d’indices.
1 2 3 4
55 89
67 89 55 60
# On aurait pu utiliser seq() Pierre Paul Jeanne Agathe

> poids[seq(4,2,-2)]

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
> poids[c(2,4)]
Paul Agathe Les éléments sont
renvoyés dans
89 60
l’ordre spécifié
> poids[c(“Agathe”,“Paul”)] dans le vecteur
poids
Agathe Paul d’indices.
1 2 3 4
55 89
67 89 55 60
# On aurait pu utiliser seq() Pierre Paul Jeanne Agathe

> poids[seq(4,2,-2)]
Agathe Paul
55 89

Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
> poids[c(2,4)]
Paul Agathe Les éléments sont
renvoyés dans
89 60
l’ordre spécifié
> poids[c(“Agathe”,“Paul”)] dans le vecteur
poids
Agathe Paul d’indices.
1 2 3 4
55 89
67 89 55 60
# On aurait pu utiliser seq() Pierre Paul Jeanne Agathe

> poids[seq(4,2,-2)]
Agathe Paul
55 89
# On peut également enlever les éléments qui ne nous intéressent pas
Introduction au langage R
Comment feriez vous ?
Nous allons utiliser le vecteur poids et afficher les poids de Paul et d’Agathe.
Il existe au moins 7 façons de faire cela en utilisant ou les indices numériques ou les noms ou les
booléens.
Avec vos connaissances, vous pouvez en proposer au moins 2.
# On peut également enlever les éléments qui ne nous intéressent pas grâce aux indices
numériques
> poids[-c(1,3)]
Paul Agathe
89 60 poids
1 2 3 4

67 89 55 60
Pierre Paul Jeanne Agathe

Introduction au langage R
Filtrage grâce aux masques booléens
Nous pouvons sélectionner les éléments d’un vecteur en utilisant un vecteur de booléens de même
taille.

1 2 3 4
# le premier élément du vecteur contenant
# les éléments logiques est attribué au
poids 67 89 55 60 # premier élément du vecteur poids etc
Pierre Paul Jeanne Agathe
> poids[c(FALSE,TRUE,FALSE,TRUE)]

1 2 3 4

FALSE TRUE FALSE TRUE

Introduction au langage R
Filtrage grâce aux masques booléens
Nous pouvons sélectionner les éléments d’un vecteur en utilisant un vecteur de booléens de même
taille.

1 2 3 4
> poids[c(FALSE,TRUE,FALSE,TRUE)]
poids 67 89 55 60 Paul Agathe
Pierre Paul Jeanne Agathe 89 60

1 2 3 4

FALSE TRUE FALSE TRUE

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment ...

[Link](poids) renvoie un
# Nous voulons le poids de Jeanne vecteur contenant le nom
> names(poids) == “Jeanne” # nous testons l’égalité entre chaînes de caractères
des éléments du vecteur
[1] FALSE FALSE TRUE FALSE poids.
>
[Link] élément du
vecteur retourné est
comparé avec “Jeanne” et
TRUE ou FALSE est
renvoyé suivant la véracité
de l’égalité.

[Link] pouvons utiliser le


vecteur de booléens créé
pour filtrer le vecteur poids
Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment ...

[Link](poids) renvoie un
> names(poids) vecteur contenant le nom
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe” des éléments du vecteur
# Nous voulons le poids de Jeanne poids.
> names(poids) == “Jeanne” # nous testons l’égalité entre chaînes de caractères
[1] FALSE FALSE TRUE FALSE [Link] élément du
> poids[names(poids) == “Jeanne”] vecteur retourné est
Jeanne comparé avec “Jeanne” et
55 TRUE ou FALSE est
renvoyé suivant la véracité
de l’égalité.

[Link] pouvons utiliser le


vecteur de booléens créé
pour filtrer le vecteur poids
Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment ...

> names(poids)
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”
# Nous voulons le poids de Jeanne
> names(poids) == “Jeanne” # nous testons l’égalité entre chaînes de caractères
[1] FALSE FALSE TRUE FALSE
> poids[names(poids) == “Jeanne”]
Jeanne
55
# nous voulons les éléments dont la valeur est strictement supérieure à 60
> poids > 60 # La comparaison est opéré sur chaque élément de poids
[1] TRUE TRUE FALSE FALSE
> poids[poids > 60]
Pierre Paul
67 89
Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...

Opérateur Booléen Signification

| ou

& et

%in% appartient à

! négation

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...

# Nous voulons le poids de Paul et Agathe


# Pour cela nous allons utiliser un nouveau test %in% qui consiste à identifier quelles
# chaînes de caractères du premier vecteur se trouvent dans le second.
# Ceci retourne TRUE ou FALSE pour chaque élément du premier vecteur
>

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...

# Nous voulons le poids de Paul et Agathe


# Pour cela nous allons utiliser un nouveau test %in% qui consiste à identifier quelles
# chaînes de caractères du premier vecteur se trouvent dans le second.
# Ceci retourne TRUE ou FALSE pour chaque élément du premier vecteur
> names(poids) %in% c(“Agathe”, “Paul”)
[1] FALSE TRUE FALSE TRUE
> poids[names(poids) %in% c(“Agathe”, “Paul”)]
Paul Agathe
89 60

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...

> names(poids)
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”
# Nous voulons le poids de Paul et Agathe
# Nous pouvons combiner les comparaisons
# Nous demandons que le nom de l’élément soit égal à Paul OU à Agathe
>

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...
[Link] première comparaison
> names(poids) retourne un vecteur de booléens
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe” signifiant si un des 4 éléments
# Nous voulons le poids de Paul et Agathe testés est égal à “Paul”
# Nous pouvons combiner les comparaisons FALSE TRUE FALSE FALSE
# Nous demandons que le nom de l’élément soit égal à Paul OU à Agathe
> names(poids) == “Paul” | names(poids) == “Agathe” [Link] seconde retourne
[1] FALSE TRUE FALSE TRUE également un vecteur de
> booléens
FALSE FALSE FALSE TRUE

[Link] comparaison totale veut


que la valeur soit TRUE dans la
première comparaison OU
TRUE dans la seconde

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...
[Link] première comparaison
> names(poids) retourne un vecteur de booléens
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe” signifiant quels élément sont
# Nous voulons le poids de Paul et Agathe supérieur ou égal à 60
# Nous pouvons combiner les comparaisons TRUE TRUE FALSE TRUE
# Nous demandons que le nom de l’élément soit égal à Paul OU à Agathe
> names(poids) == “Paul” | names(poids) == “Agathe” [Link] seconde retourne
[1] FALSE TRUE FALSE TRUE également un vecteur de
# un autre exemple de combinaison booléens signifiant les éléments
# Nous demandons que le poids soit compris entre 60 et 70 inférieurs ou égal à 70
> poids >=60 & poids <= 70 TRUE FALSE TRUE TRUE
[1] TRUE FALSE FALSE TRUE
[Link] comparaison totale veut
que la valeur soit TRUE dans la
première comparaison ET
TRUE dans la seconde
Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...
[Link] première comparaison
> names(poids) retourne un vecteur de booléens
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe” signifiant quels élément sont
# Nous voulons le poids de Paul et Agathe supérieur ou égal à 60
# Nous pouvons combiner les comparaisons TRUE TRUE FALSE TRUE
# Nous demandons que le nom de l’élément soit égal à Paul OU à Agathe
> names(poids) == “Paul” | names(poids) == “Agathe” [Link] seconde retourne
[1] FALSE TRUE FALSE TRUE également un vecteur de
# un autre exemple de combinaison booléens signifiant les éléments
# Nous demandons que le poids soit compris entre 60 et 70 inférieurs ou égal à 70
> poids >=60 & poids <= 70 TRUE FALSE TRUE TRUE
[1] TRUE FALSE FALSE TRUE
[Link] comparaison totale veut
que la valeur soit TRUE dans la
première comparaison ET
TRUE dans la seconde
Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”
# Nous voulons changer le second élément par “Jacques”
# Accédons au second élément
>

Introduction au langage R
Filtrage grâce aux masques booléens
Ceci nous ouvre beaucoup de possibilités car nous pouvons utiliser les comparaisons vues
précédemment et des nouvelles ...
[Link] première comparaison
> names(poids) retourne un vecteur de booléens
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe” signifiant quels élément sont
# Nous voulons le poids de Paul et Agathe supérieur ou égal à 60
# Nous pouvons combiner les comparaisons TRUE TRUE FALSE TRUE
# Nous demandons que le nom de l’élément soit égal à Paul OU à Agathe
> names(poids) == “Paul” | names(poids) == “Agathe” [Link] seconde retourne
[1] FALSE TRUE FALSE TRUE également un vecteur de
# un autre exemple de combinaison booléens signifiant les éléments
# Nous demandons que le poids soit compris entre 60 et 70 inférieurs ou égal à 70
> poids >=60 & poids <= 70 TRUE FALSE TRUE TRUE
[1] TRUE FALSE FALSE TRUE
> poids[poids >=60 & poids <= 70] [Link] comparaison totale veut
Pierre Agathe que la valeur soit TRUE dans la
première comparaison ET
67 60
TRUE dans la seconde
Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”
# Nous voulons changer le second élément, “Paul” par “Jacques”
# Accédons au second élément
> individus[2] # ou individus[individus == “Paul”]
[1] “Paul”
# Il suffit alors d’affecter la valeur que l’on désire
>

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Paul” ”Jeanne” ”Agathe”
# Nous voulons changer le second élément, “Paul” par “Jacques”
# Accédons au second élément
> individus[2] # ou individus[individus == “Paul”]
[1] “Paul”
# Il suffit alors d’affecter la valeur que l’on désire
> individus[2] ← “Jacques”
# Cette modification est définitive,
# nous ne pouvons pas récupérer la valeur qui a été écrasée
> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”
# Nous voulons changer maintenant les 2 derniers prénoms par Caroline et Nadine
>

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”
# Nous voulons changer maintenant les 2 derniers prénoms par Caroline et Nadine
> individus[3:4] ← c(“Caroline”, “Nadine”)
> individus
[1] “Pierre” ”Jacques” ”Caroline” ”Nadine”
# Que se passe-t’il si nous affectons un vecteur plus court ? Par exemple “Nadine”
> individus[3:4] ← “Nadine”

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”
# Nous voulons changer maintenant les 2 derniers prénoms par Caroline et Nadine
> individus[3:4] ← c(“Caroline”, “Nadine”)
> individus
[1] “Pierre” ”Jacques” ”Caroline” ”Nadine”
# Que se passe-t’il si nous remplaçons par seulement Nadine ?
> individus[3:4] ← “Nadine”
> individus Nous appelons ça le recyclage.
[1] “Pierre” ”Jacques” ”Nadine” ”Nadine” Nous y reviendrons plus tard

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”
# Nous voulons changer maintenant les 2 derniers prénoms par Caroline et Nadine
> individus[3:4] ← c(“Caroline”, “Nadine”)
> individus
[1] “Pierre” ”Jacques” ”Caroline” ”Nadine”
# Que se passe-t’il si nous affectons un vecteur plus court ? Par exemple “Nadine”
> individus[3:4] ← “Nadine”
# Que se passe-t’il si nous affectons un vecteur plus long ?
> individus[3:4] ← rep(“Nadine”,3)

Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus
[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe”
# Nous voulons changer maintenant les 2 derniers prénoms par Caroline et Nadine
> individus[3:4] ← c(“Caroline”, “Nadine”)
> individus
[1] “Pierre” ”Jacques” ”Caroline” ”Nadine”
# Que se passe-t’il si nous remplaçons par seulement Nadine ?
> individus[3:4] ← “Nadine”
# Que se passe-t’il si nous affectons un vecteur plus long ?
> individus[3:4] ← rep(“Fred”,3)
Warning message:
In individus[3:4] <- rep("Fred", 3) :
le nombre d'objets à remplacer n'est pas multiple de la taille du remplacement
> individus
[1] “Pierre” ”Jacques” ”Fred” ”Fred”
Introduction au langage R
Modifier les éléments d’un vecteur
Pour modifier certains éléments d’un vecteur nous utilisons les indices !
Utilisons le vecteur individus que nous avons créé précédemment. Si vous ne l’avez pas vous pouvez
affecter les noms du vecteur poids à une nouvelle variable individus

> individus Il est possible d’utiliser le recyclage mais il faut être


[1] “Pierre” ”Jacques” ”Jeanne” ”Agathe” bien sûr de ce que l’on fait. R ne retourne un warning
que si l’objet
# Nous voulons changer maintenant les 2 derniers prénoms de remplacement
par Caroline etn’a pas une longueur
Nadine
> individus[3:4] ← c(“Caroline”, “Nadine”) multiple de la longueur de l’objet à remplacer.
> individus
> individus[1:3] ← c(“Jean”, “Matt”)
[1] “Pierre” ”Jacques” ”Caroline” ”Nadine” Warning message:
# Que se passe-t’il si nous remplaçons par seulement Nadine?<- c("Jean", “Matt”) :
In individus[1:3]
> individus[3:4] ← “Nadine” le nombre d'objets à remplacer n'est pas multiple de
# Que se passe-t’il si nous affectons un vecteur laplus
taillelong?
du remplacement
> individus[3:4] ← rep(“Fred”,3) > individus
Warning message: [1] “Jean” “Matt” “Jean” “Fred”
In individus[3:4] <- rep("Fred", 3) :
le nombre d'objets à remplacer n'est pas multiple de la taille
Il vaut du remplacement
mieux utiliser des objets de même longueur
> individus
[1] “Pierre” ”Jacques” ”Fred” ”Fred”
Introduction au langage R
Nous avons appris ...

- A créer des vecteurs de type numériques, chaînes de caractères et booléens avec


différentes fonctions:
- : et seq() pour des séquences numériques
- rep() pour répéter plusieurs fois 1 ou plusieurs éléments
- c() la plus générique et la plus utilisée

- A extraire des éléments des vecteurs en utilisant les crochets [ ] et


- des vecteurs d’indices numériques
- des vecteurs de noms si les éléments ont été nommés avec names()
- des vecteurs de booléens que nous pouvons construire grâce à des comparaisons

- A modifier des éléments des vecteurs avec les mêmes notions


- Il faut faire attention au recyclage

Introduction au langage R
Manipuler les vecteurs
Pour illustrer cette partie, nous allons utiliser un objet R, [Link], présent dans le répertoire data.
Cet objet contient 2 vecteurs, weight et groups spécifiant le poids de plantes ayant subi ou non un
traitement.
Pour cela, nous allons utiliser la fonction load() qui prend en argument le chemin vers le fichier à charger.

Introduction au langage R
Manipuler les vecteurs
Pour illustrer cette partie, nous allons utiliser un objet R, [Link], présent dans le répertoire data.
Cet objet contient 2 vecteurs, weight et groups spécifiant le poids de plantes ayant subi ou non un
traitement.
Pour cela, nous allons utiliser la fonction load() qui prend en argument le chemin vers le fichier à charger.

Introduction au langage R
Manipuler les vecteurs
Pour illustrer cette partie, nous allons utiliser un objet R, [Link], présent dans le répertoire data.
Cet objet contient 2 vecteurs, weight et groups spécifiant le poids en kg de plantes ayant subi ou non un
traitement.
Pour cela, nous allons utiliser la fonction load() qui prend en argument le chemin vers le fichier à charger.

Pouvez vous décrire les objets chargés:


- Quel type ?
- Quelle longueur ?
- Les éléments des vecteurs sont-ils nommés ?

Introduction au langage R
Manipuler les vecteurs
En regardant les valeurs du vecteur weight, il apparaît qu’elles sont petites et qu’il serait plus approprié de
les transformer en gramme en les multipliant toutes par 100

# transformer en gramme
>

Introduction au langage R
Manipuler les vecteurs
En regardant les valeurs du vecteur weight, il apparaît qu’elles sont petites et qu’il serait plus approprié de
les transformer en gramme en les multipliant toutes par 100

# transformer en gramme
> weight ← weight*100 il s’agit ici encore de
recyclage, R utilise le
>
vecteur le plus court et le
recycle jusqu’à obtenir la
longueur du vecteur le plus
long

Introduction au langage R
Manipuler les vecteurs
Après vérification, nous nous sommes aperçu que la balance c’est déréglée pour une mesure sur deux ce
qui entraîne un écart de 0.1 gramme de trop sur les mesures d’index pair

# transformer en gramme
> weight ← weight*100 il s’agit ici encore de
recyclage, R utilise le
# Grâce à nos connaissances nous savons le faire de
vecteur le plus court et le
# plusieurs manières, ici utilisons le recyclage
recycle jusqu’à obtenir la
>
longueur du vecteur le plus
long

Introduction au langage R
Manipuler les vecteurs
Après vérification, nous nous sommes aperçu que la balance c’est déréglée pour une mesure sur deux ce
qui entraîne un écart de 0.1 gramme de trop sur les mesures d’index pair

# transformer en gramme
> weight ← weight*100 il s’agit ici encore de
recyclage, R utilise le
# Grâce à nos connaissances nous savons le faire de
vecteur le plus court et le
# plusieurs manières, ici utilisons le recyclage
recycle jusqu’à obtenir la
> weight ← weight - c(0,0.1)
longueur du vecteur le plus
>
long

Introduction au langage R
Manipuler les vecteurs
Après vérification, nous nous sommes aperçu que la balance c’est déréglée pour une mesure sur deux ce
qui entraîne un écart de 0.1 gramme de trop sur les mesures d’index pair

# transformer en gramme
> weight ← weight*100 il s’agit ici encore de
recyclage, R utilise le
# Grâce à nos connaissances nous savons le faire de
vecteur le plus court et le
# plusieurs manières, ici utilisons le recyclage
recycle jusqu’à obtenir la
> weight ← weight - c(0,0.1)
longueur du vecteur le plus
>
long

vecteur initial 4.17 5.58 5.18 6.11 4.50 4.61 5.17

vecteur recyclé créé 0 0.1 0 0.1 0 0.1 0

vecteur après soustraction 4.17 5.48 5.18 6.01 4.50 4.51 5.17

Introduction au langage R
Manipuler les vecteurs
Nous allons voir une série de fonctions très souvent utilisées pour la manipulation de données

Introduction au langage R
Manipuler les vecteurs

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

Introduction au langage R
Manipuler les vecteurs

order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

Introduction au langage R
Manipuler les vecteurs

numeric
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4
vector

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector

2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector

Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
logical vector 2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector
F F F T T T T F T T T
Introduction au langage R
Manipuler les vecteurs

numeric length()
vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order() unique()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
logical vector 2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector
F F F T T T T F T T T
Introduction au langage R
Manipuler les vecteurs

numeric length() numeric


1 2 4 3
vector vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order() unique()

numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
logical vector 2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector
F F F T T T T F T T T
Introduction au langage R
Manipuler les vecteurs

numeric length() numeric


1 2 4 3
vector vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order() unique()

table()
numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
logical vector 2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector
F F F T T T T F T T T
Introduction au langage R
Manipuler les vecteurs

numeric length() numeric


1 2 4 3
vector vector
of 1 4 5 7 2 6 10 11 8 3 9
indexes
order() unique() 1 2 3 4

table() 4 4 1 2
numeric 1 2 3 4 5 6 7 8 9 10 11
vector 1 2 4 1 1 2 1 3 4 2 2
count table

sort()
sorted
numeric 1 1 1 1 2 2 2 2 3 4 4 rev()
vector
duplicated()
logical vector 2 2 4 3 1 2 1 1 4 2 1
reversed numeric vector
F F F T T T T F T T T
Introduction au langage R
Manipuler les vecteurs

1. Quels sont les groupes présents dans le vecteurs groups?

1. Combien d’éléments chaque groupe contient-il?

1. Sachant que les éléments du vecteur groups correspondent aux éléments du vecteur weight,
créer 1 vecteur par groupe contenant les poids correspondant.

1. Chaque groupe contient en fait les mêmes individus plante1, plante2 etc. Constituer un vecteur
contenant l’identifiant des plantes et l’affecter aux éléments de chaque groupe.

Introduction au langage R
Manipuler les vecteurs

#1. Quels sont les groupes présents dans le vecteurs groups?


unique(groups)

#2. Combien d’éléments chaque groupe contient-il?


table(groups)

#3. Sachant que les éléments du vecteur groups correspondent aux éléments du vecteur
weight, créer 1 vecteur par groupe contenant les poids correspondant.
ctrl <- weight[groups=="ctrl"]
trt1 <- weight[groups=="trt1"]
trt2 <- weight[groups=="trt2"]

#4. Chaque groupe contient en fait les mêmes individus plante1, plante2 etc. Constituer
un vecteur contenant l’identifiant des plantes et l’affecter aux éléments de chaque groupe.
identifiants <- paste("plante",1:length(ctrl),sep="")
names(ctrl) <- names(trt1) <- names(trt2) <- identifiants

Introduction au langage R
Un peu de statistique de base

Introduction au langage R
Analyser la distribution d’un vecteur : le centre
Une distribution est définie par différentes mesures comme par exemple la médiane ou la variance.

# Calculons le centre de la distribution du vecteur weight


# commençons par la moyenne avec la fonction mean()
> mean(weight)
[1] 5.023
# Découvrons la fonction sum() en calculant la moyenne
> sum(weight) / length(weight)
[1] 5.023
# étudions la médiane
> median(weight)
[1] 5.1
# vérifions que 5.1 est bien la médiane
> sum(weight>5.1) == sum(weight<5.1)
TRUE

Introduction au langage R
Attention aux NA
Comme nous l’avons vu plus tôt, nous ne pouvons pas faire de calcul avec des éléments de type NA, or il y
en a souvent dans nos données.
Il y a plusieurs façon de les éviter, le tout est de toujours y penser.

# Créons un vecteur weight2 en concaténant un NA au vecteur weight


> weight2 <- c(weight,NA)
# Que se passe-t’il si nous calculons la moyenne ?
> mean(weight2)
[1] NA
# Nous pourrions filtrer les valeurs qui ne sont pas NA
> mean(weight2[![Link](weight2)])
[1] 5.023
# Il existe une fonction qui permet d’éliminer les NA dans des vecteurs [Link]()
> mean([Link](weight2))
[1] 5.023
# Enfin la plupart des fonctions statistiques possèdent un argument [Link] avec une valeur par défaut
FALSE
> mean(weight2,[Link]=T)
[1] 5.023
Introduction au langage R
Analyser la distribution d’un vecteur: la dispersion
Comment sont organisées les valeurs par rapport à ce centre ?
C’est ce qu’on appelle dispersion par rapport à la moyenne ou la médiane: la valeur maximale, la
valeur minimale, les quantiles, la variance ou encore l'écart type.
# Quelles sont les valeurs extrêmes de la distribution ? min(), max(), range()
> min(weight)
[1] 3.49
> max(weight)
[1] 6.31
> range(weight)
[1] 3.49 6.31

Introduction au langage R
Analyser la distribution d’un vecteur: la dispersion
Comment sont organisées les valeurs par rapport à ce centre ?
C’est ce qu’on appelle dispersion par rapport à la moyenne ou la médiane: la valeur maximale, la
valeur minimale, les quantiles, la variance ou encore l'écart type.
# Les quantiles, par défaut la distribution est divisée en 4 parties égales (les quartiles)

densité de
distribution

boxplot
[Link]

Introduction au langage R
Analyser la distribution d’un vecteur: la dispersion
# Les quantiles, par défaut la distribution est divisée en 4 parties égales (les quartiles)
> quantile(weight)
0% 25% 50% 75% 100%
3.4900 4.5025 5.1000 5.4600 6.3100
# Nous pouvons récupérer la médiane (séparation en 2 parties égales)
> quantile(weight)[“50%”]
50%
5.1
# Nous pouvons séparer en 10 parties égales (les déciles)
> quantile(weight,probs=seq(0,1,0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
3.490 4.160 4.426 4.566 4.876 5.100 5.184 5.379 5.592 6.012 6.310
# très utile pour se rendre compte si il y a des outliers
> quantile(c(weight,1000),probs=seq(0,1,0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80%
90% 100%
3.49 4.17 4.43 4.59 4.92 5.16 5.19 5.40 5.80
6.03 1000.00

Introduction au langage R
Analyser la distribution d’un vecteur: la dispersion
Comment sont organisées les valeurs par rapport à ce centre ?
C’est ce qu’on appelle dispersion par rapport à la moyenne ou la médiane: la valeur maximale, la
valeur minimale, les quantiles, la variance ou encore l'écart type.

# écart type 𝝈, variance, IQR et z-score [Link]

Introduction au langage R
Analyser la distribution d’un vecteur: la dispersion
Comment sont organisées les valeurs par rapport à ce centre ?
C’est ce qu’on appelle dispersion par rapport à la moyenne ou la médiane: la valeur maximale, la
valeur minimale, les quantiles, la variance ou encore l'écart type.
# écart type
> sd(weight) mean(), sd(), var() sont très
[1] 0.7110078 sensibles aux valeurs
# variance qui est égal à l’écart type au carré extrêmes.
> var(weight) Il faut en tenir compte lors de
[1] 0.5055321 l’utilisation de ces calculs.
# l’IQR: inter quartiles range Certains tests statistiques ne
> IQR(weight) fonctionnent que si la
[1] 0.9575 distribution de vos données
# centrer-réduire ou z-score: nombre d’écart types à la moyenneest normale et ne contient
> zscore <- (weight - mean(weight)) / sd(weight) pas/plus d’outliers.
> zscore
[1] -1.199705572 0.642749644 0.220813335 1.388170456 -0.735575632 -0.721511088 0.206748791 -0.834027437
[9] 0.431781489 0.023909724 -0.299574779 -1.340351008 -0.862156525 -2.156094539 1.191266845 -1.818545491
[17] 1.416299544 -0.327703867 -0.988737417 -0.608994739 1.810106765 -0.004219363 0.727136906 0.530233295
[25] 0.488039664 0.234877879 -0.144864799 1.444428631 1.092815040 0.192684248

Introduction au langage R
Nous avons appris ...

- Que le plus petit objet en R est un vecteur de longueur 1


- Que l’on peut appliquer à l’ensemble des éléments d’un vecteur la même opération
- Que les vecteurs sont des suites d’éléments accessibles par des indices numériques
(tous les vecteurs sont indexés de cette façon)
- Que nous pouvons ajouter, soustraire, multiplier, diviser des vecteurs entre eux et que les
opérations se font par indices (avec le recyclage si besoin).
- Que l’on peut nommer les éléments d’un vecteur et s’en servir comme indices
- Que l’on peut filtrer les vecteurs grâce à des vecteurs booléens que nous créons
usuellement par la comparaison, la recherche de valeurs spécifiques.
- Que nous pouvons les ordonner, les trier, rechercher les éléments dupliqués, compter les
éléments.
- Que nous pouvons évaluer la distribution de nos données en calculant les statistiques de
bases grâce aux fonctions présentes dans R.

Introduction au langage R
Que fait ce code ? Décrypter et commenter.
[Link] <- c(seq(440,2,-20),310)
names([Link]) <- c(1:22,"X")

reads.ind1 <- 1:100


[Link](123)
names(reads.ind1) <- paste("chr",sample(c(1:22,"X"),100,replace=T),sep="")

[Link].chrom1 <- table(names(reads.ind1))


[Link] <- order([Link](sub("chr","",names([Link].chrom1))))
[Link].chrom1 <- [Link].chrom1[[Link]]

[Link].chrom1 <- [Link].chrom1 / [Link]

[Link].read1 <- names([Link].chrom1)[[Link]([Link].chrom1)]

paste0("Le chromosome le plus séquencé relativement à sa taille est: ", [Link].read1,


" avec ", [Link].chrom1[[Link].read1]," reads (", [Link].chrom1[[Link].read1], " read
par bp)")

Introduction au langage R
Que fait ce code ? Décrypter et commenter.

Introduction au langage R
Combiner les variables : structures complexes

classe Description

vector 1 dimension, 1 type

facteur 1 dimension, catégoriel

matrices / arrays 2 dimensions et plus, 1 type

[Link] 2 dimensions, 1 type / colonne

list 1 dimension, 1 type ou plus

Introduction au langage R
Qu’est ce qu’un facteur ?

- Les facteurs sont des vecteurs mais avec des propriétés qui leurs sont propres.

- On va pouvoir utiliser des fonctions (length(), names(), head(), tail()) et des manipulations
(extraire grâce aux indices, filtrer) que nous connaissons déjà.

- On y stocke des éléments qualitatifs qui ont une valeur descriptive et non numérique. Les
opérations mathématiques sont donc impossibles.

- Les éléments peuvent-être de types différents mais seront interprétés comme des catégories

- Un nouvel attribut : les niveaux qui est un vecteur qui contient l’ensemble des valeurs
possibles qui peuvent être présentes dans le facteur

Introduction au langage R
Pourquoi utilise-t’on un facteur ?

Lors de manipulation de données qualitatives, les niveaux représentent une information


supplémentaire

Cela permet surtout de “sécuriser” les données

On les utilise rarement de notre propre gré …

- mais ils peuvent apparaître à la suite de différentes manipulations alors que vous
penserez manipuler des vecteurs.

- certaines fonctions requièrent, ou fonctionnent de manière optimale avec des


facteurs (en utilisant notamment les niveaux)

Donc il faut donc connaître et savoir utiliser les facteurs !!!

Introduction au langage R
Créer un facteur avec factor()
Imaginons que nous ayons des données portant sur le niveau de maitrise en R collectées à la fin
d’une formation du CNRS .

# Créons un facteur contenant les données pour 5 perosnnes


> Rlevel <- factor(c( "moyen", "faible", "fort" , "fort" , "faible"))
# On affiche
> Rlevel
1] moyen faible fort fort faible
Levels: faible fort moyen Par défaut les niveaux seront tous
les éléments uniques présent dans
le vecteur. Les niveaux ne sont pas
ordonnés par leur ordre d’apparition
dans le vecteur.

Introduction au langage R
Créer un facteur avec factor()
Imaginons que nous ayons des données portant sur le niveau de maitrise en R collectées à la fin
d’une formation du CNRS .

# Créons un facteur contenant les données pour 5 personnes


> Rlevel <- factor(c("moyen","faible", "fort" , "fort" , "faible") ,levels=c("faible", "moyen", "fort", "NC"))

# On affiche
> Rlevel
[1] moyen faible fort fort faible
Levels: faible moyen fort NC
Si l’on spécifie les
niveaux, l’ordre est
alors imposé

Introduction au langage R
Comment feriez vous ?

1. Afficher la longueur du facteur.

1. Nommer les éléments du facteur avec des identifiants du type “stagiaire1”,


“stagiaire2” etc.

1. Afficher le niveau du 3ème stagiaire.

1. Afficher le niveau des stagiaires 1 et 2

1. Afficher l’identifiant des stagiaires qui ont un niveau faible

Introduction au langage R
Niveaux d’un facteur : levels()

# On re-crée le facteur
> Rlevel <- factor(c( "moyen", "faible", "fort" , "fort" , "faible"))

# retourner les niveaux


> levels(Rlevel)

# ajouter un niveau
> levels(Rlevel) <- c(levels(Rlevel),"NC")

# il se trouve que la nomenclature pour catégoriser a changé


# on doit donc modifions les niveaux avec des valeurs numeriques (0,1,2)
> levels(Rlevel) <- c(0,1,2,NA)

Introduction au langage R
Encodage des facteurs

Les facteurs sont encodés par des entiers

2 1 3 3 1
vecteur moyen faible fort fort faible
Rlevel
1 2 3
niveaux faible moyen fort

Introduction au langage R
Encodage des facteurs

Les facteurs sont encodés par des entiers

2 1 3 3 1
vecteur moyen faible fort fort faible
Rlevel
1 2 3
niveaux faible moyen fort

> levels(Rlevel)[1] <- 0


# le 1er niveau a changé, les éléments du vecteur de même niveau ont changé

Introduction au langage R
Encodage des facteurs

Les facteurs sont encodés par des entiers

2 1 3 3 1
vecteur moyen faible fort fort faible
Rlevel
1 2 3
niveaux faible moyen fort

> levels(Rlevel)[2] <- NA


# le 2ème niveau n’existe plus

Introduction au langage R
Encodage des facteurs

Les facteurs sont encodés par des entiers

2 1 3 3 1
vecteur moyen faible fort fort faible
Rlevel
1 2 3
niveaux faible moyen fort

# En fait le 5eme stagiaire a avoué ne pas être si mauvais que ça ….


> Rlevel[5] <- “moyen”

Introduction au langage R
Encodage des facteurs

Les facteurs sont encodés par des entiers

2 1 3 3 1
vecteur moyen faible fort fort faible
Rlevel
1 2 3
niveaux faible moyen fort

# Nous souhaitons ajouter un stagiaire


> Rlevel <- c(Rlevel,stagiaire6="moyen")

Introduction au langage R
Du facteur au vecteur et vice-versa
# Créons un facteur contenant les données pour 5 personnes
> Rlevel <- factor(c( "moyen", "faible", "fort" , "fort" , "faible"))
> names(Rlevel) <- paste( "stagiaire",1:5,sep="")
# On veut d’abord tester si notre objet est un facteur (comme pour les types,
# il existe pour les classes les fonctions is.)
> [Link](Rlevel)
[1] TRUE
# Transformons le en vecteur (comme pour les types, il existe pour les classes les fonctions as.)
> Rlevel<- [Link](Rlevel) # c’est une opération que nous faisons très souvent
> Rlevel
[1] "moyen" "faible" "fort" "fort" "faible"

# On obtient un vecteur de chaînes de caractères, les niveaux ont disparu


# On a changé d’avis, au final, cette structure est souhaitée
> Rlevel<- [Link](Rlevel)
> Rlevel
[1] moyen faible fort fort faible
Levels: faible fort moyen

Introduction au langage R
Le cas des numériques ...
# Créons un facteur contenant quelques nombre
> [Link] <- factor(c(12,4,68,6))
> [Link]
[1] 12 4 68 6
Levels: 4 6 12 68

# transformons le en vecteur
> [Link]([Link])
[1] "12" "4" "68" "6"
# Nous avons un vecteur de chaînes de caractères … essayons avec [Link]()
> [Link]([Link])
[1] 3 1 4 2
# Que s’est-il passé ? -> ce sont les indices des niveaux correspondant qui ont été retournés …

# La solution ?
> [Link]([Link]([Link]))
[1] 12 4 68 6

Introduction au langage R
Nous avons appris ...

- Que les facteurs sont des vecteurs avec les niveaux qui définissent les valeurs possibles
des éléments du vecteur

- Que les éléments sont encodés par les indices des niveaux et qu’il est alors possible de
modifier seulement les niveaux pour changer toutes les valeurs du vecteur

- Que sa manipulation demande un peu d'entraînement et d’attention

- Que la conversion en vecteur est souvent appropriée mais qu’il faut faire attention à la
conversion en numériques

Introduction au langage R
Chapitre
Les Fonctions2
Quand créons-nous des fonctions ?

- En analyse de données, nous créons des fonctions lorsque le code que nous
avons écrit est utilisé plusieurs fois et que nous commençons à le dupliquer
pour changer telle ou telle valeur. On automatise les traitements.

- En développement de méthodes, c’est plus systématique, ça permet de


proposer, de partager des traitements personnalisables (avec les
arguments), réutilisable et sans toucher à la méthode elle-même.

Introduction au langage R
Rappel

Informations dont la
fonction à besoin
pour travailler
Mêmes règles que
pour le choix du
nom des variables
nom_de_la_fonction( arguments )

Les parenthèses
indiquent que nous
appelons une fonction

Introduction au langage R
Rappel

Introduction au langage R
Création de fonction avec function()

P240_nb_rep x pi T

# Choisir un nom et créer une fonction 3.1415


4 3 TRUE
> ajoute2 <- function(val){ res=val+2; 93

[Link]
return(res) }
> ajoute2 function()
function(val){ res=val+2; return(res) } {}

> class(ajoute2)
[1] "function"
# J’appelle ma fonction
> ajoute2()
En R, une fonction est
un objet avec un nom
occupant un espace
défini de la mémoire
console

Introduction au langage R
Création de fonction avec function()

P240_nb_rep x pi T

# portée des variables de fonction 3.1415


4 3 TRUE
# à scope 93

[Link]
> val
Erreur : objet 'val' introuvable function()
{}

>ajoute2(x)
[1] 7

>ajoute2 <- function(val){ res=val+x;


return(res) }
>ajoute2(x) ??????????

console

Introduction au langage R
Création de fonction avec function()

P240_nb_rep x pi T

# valeur par defaut 3.1415


4 3 TRUE
>ajoute2 <- function(val=10){ 93

[Link]
res=val+2; return(res) }
function()
{}

# fonction anonyme
>aggregate(formula = . ~ Species,
data = iris, FUN = max)

>aggregate( formula = . ~ Species,


data = iris, FUN = function(x) c(min =
min(x), moy = mean(x), max =
max(x)) )
console

Introduction au langage R
Création de fonction avec function()
A vous de jouer : définir une fonction qui calcule le
périmètre et l’aire d’un rectangle
P240_nb_rep x pi T

3.1415
4 3 TRUE
93

[Link]
function()

?
{}

console

Introduction au langage R
Instructions supplémentaires

Dans certains cas on peut aussi avoir besoin de tests conditionnels (si / sinon) ou de faire
des boucles sur des données dans un vecteur.

if (ThisTest==TRUE) { x = x+1 } else { x = x-1 }

for (i in 1:100) { vec[i] = vec[i]^2 }

Introduction au langage R
Création de fonction avec function()
A vous de jouer : définir une fonction qui calcule le
périmètre et l’aire d’un rectangle
P240_nb_rep x pi T

Cette fois on souhaites toutes les combinaisons de 3.1415


longueurs et largeurs entre 1 et 10 avec un message 4 3 TRUE
93

[Link]
si c’est un carré
function()
{}

?
console

Introduction au langage R
Comment feriez-vous ?

On souhaite créer une fonction qui le pourcentages de chaque valeur dans un vecteur.
L’argument doit être un vecteur de chaines de caractères
Le retour doit être un tableau

Aide : pensez à utiliser la fonction table()

Bonus : retourner une info si le vecteur est vide

Introduction au langage R
Nous avons appris ...

- Ce qu’est une variable, son type, ses propriétés

- Comment organiser et manipuler des variables dans des objets de classe vecteur et facteur

- Utiliser et automatiser du code

Introduction au langage R

Vous aimerez peut-être aussi