Initiation au langage R
Partie 2
Pr Aicha MAJDA
Département ETAP
FSJES – UMI
2023 - 2024
Plan
Opérateurs
Fonctions prédéfinies
Structures de contrôle
Structures répétitives
Opérateurs
Les opérateurs arithmétiques sont utilisés avec des valeurs numériques pour
effectuer des opérations mathématiques
Les opérateurs de puissance ^ et les operateurs d’assignation sont évalués de droite à
gauche ; tous les autres de gauche à droite. Ainsi, 2^2^3 est 2^8, et non 4^3, alors que 1 -
1 - 1 vaut -1, et non 1.
Opérateurs
Exemple : soit deux vecteurs c(1, 2, 3) et c(4, 5, 6)
Attention : Cas de deux vecteurs de longueur différente : La longueur
du vecteur le plus long doit être multiple de la longueur du vecteur le
plus petit
Opérateurs
Exemple : soit deux vecteurs c(1, 2, 3) et c(4, 5)
Deux vecteurs dont la taille du plus grand est % à celle du plus petit c(1,2,3) et
c(4,5,6,7,8,9)
Opérateurs
Exemple : Cas des données qui se répètent : 1:9 + 20
En R, rep() est une fonction qui réplique
des valeurs numériques, ou du texte, ou
les valeurs d'un vecteur pour un nombre
de fois spécifique.
Cas de +ieurs vecteurs :
T(1er)=10, T(2ème )= 5, T(3ème )= 2
Opérateurs
Les opérateurs de comparaison sont utilisés pour comparer deux valeurs :
Opérateurs
Les opérateurs logiques sont utilisés pour combiner des instructions conditionnelles :
Opérateurs
Autres opérateurs sont utilisés pour manipuler les données
Les fonctions prédéfinies
Le logiciel R offre plusieurs fonctions prédéfinies stockées dans des packages.
• Une fonction peut avoir des arguments, exemple rep(2, 10)
• L’ordre des arguments établi est important
• Il est donc important de les nommer s'ils ne sont pas appelés dans l'ordre.
• Certains arguments peuvent avoir une valeur par défaut qui sera utilisée si l'argument n'est pas
spécifié dans l'appel de la fonction.
rep(x, times = 1, [Link] = NA, each = 1)
Les fonctions prédéfinies
Exemple : La fonction matrix()
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
La fonction compte cinq arguments : data, nrow, ncol, byrow et dimnames.
La fonction a par défaut une valeur pour chaque argument (Pas le cas pour toutes les
fonctions ).
Ainsi, un appel à matrix sans argument :
Les fonctions prédéfinies
Exemple : La fonction matrix()
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
Et un appel à matrix avec arguments :
Les fonctions prédéfinies
Les fonctions de base les plus souvent utilisées pour programmer en R et pour
manipuler des données.
[Link]
Les fonctions prédéfinies
Les fonctions de base les plus souvent utilisées pour programmer en R et pour
manipuler des données.
Les fonctions prédéfinies
Les fonctions de base les plus souvent utilisées pour programmer en R et pour
manipuler des données.
Les fonctions prédéfinies
Recherche d'éléments dans un vecteur :
Les fonctions prédéfinies
Recherche d'éléments dans un vecteur :
Les fonctions prédéfinies
L’arrondi des données numériques dans un vecteur
Les fonctions prédéfinies
L’arrondi des données numériques dans un vecteur
Les fonctions prédéfinies
Les fonctions statistiques
Les fonctions prédéfinies
Les fonctions statistiques
Les fonctions prédéfinies
Les fonctions statistiques
Les fonctions prédéfinies
Les fonctions cumulatives
Les fonctions prédéfinies
Les fonctions de comparaison élément par élément
Les fonctions prédéfinies
Les fonctions pour les matrices
Les fonctions prédéfinies
Les fonctions pour les matrices
Les fonctions prédéfinies
Les fonctions pour les matrices
Les fonctions prédéfinies
Exercice :
Sur R-studio, simuler un échantillon x=(x1,x2,x3,… ,x20) avec la
fonction sample.
Écrire le code R permettant d'obtenir ou de calculer chacun des
résultats demandés ci-dessous.
1. Les cinq premiers éléments de l'échantillon.
2. La valeur maximale de l'échantillon.
3. La moyenne des cinq premiers éléments de l'échantillon.
4. La moyenne des cinq derniers éléments de l'échantillon.
Les structures de contrôle
Supposons que je veux comparer a et b et afficher si b est plus petit ou plus grand !
Les structures de contrôle sont des commandes qui permettent de déterminer Quel bloc du
programme sera exécuté d'exécution d'un programme : choix entre des blocs de code.
On distingue deux types :
les structures alternatives : if - else
Les structures de choix multiple : swith()
Les structures de contrôle
les structures alternatives : if – else
if (condition) bloc1 else bloc2
Si condition est vraie, bloc1 est exécutée, sinon ce sera bloc2.
Pour éviter les erreurs chaque bloc doit être mis entre des accolades { } :
Les structures de contrôle
les structures alternatives : if – else
Pour un bloc de plusieurs instructions :
Les structures de contrôle
les structures alternatives : if – else
Cas de structures if – else imbriquées:
Les structures de contrôle
La fonction ifelse() pour les vecteurs en R
C’est une forme vectorielle équivalente à l’instruction if…else, qui prend des vecteurs en
entrée et génèrent un vecteur à la sortie.
Plus rapide que l’instruction if…else utilisée pour chaque élément du vecteur :
Les structures de contrôle
La fonction switch()dans R teste une expression par rapport aux éléments d'une liste.
Si la valeur évaluée à partir de l'expression correspond à un élément de la liste, la valeur
correspondante est renvoyée.
switch (expression, list)
Exemple :
Cette fonction est rarement utilisée en R.
Les structures de contrôle
Exercice
Ecrire un programme R qui demande à l’utilisateur le rayon d’une sphère, puis teste ce rayon: si
sa valeur est négative le programme affiche « La valeur du rayon est invalide », sinon il affiche son
volume donné par la formule V = 4/3πr³.
Les structures répétitives
Ce sont des boucles qui répètent l’exécution d’un bloc de code tant qu'une condition spécifiée
n’est pas encore atteinte.
En R on a deux commandes de boucle :
boucles while
Boucles for
Les structures répétitives
La boucle while : Tant que la condition entre ( ) est VRAIE le code du blloc entre { }
sera exécuté :
i <- 1
while (i < 6) {
print(paste ("c'est le tour", i))
i <- i + 1
}
Tester votre machine sans incrémenter i (i <- i + 1 ), que peut on déduire ?
Essayer d’afficher le résultat sans appel à print(), que peut on déduire ?
Les structures répétitives
La boucle for : Une boucle for est utilisée pour parcourir une
séquence :
Les structures répétitives
l'instruction break : Elle permet d’arrêter la boucle même si la
condition d’arrêt est False :
Tester ce script, quel sera le résultat si on inverse l’ordre des deux
instructions print(…) et if(…)… ?
Les structures répétitives
l'instruction next : On peut sauter une itération sans terminer la
boucle :
Les structures répétitives
Exercice
Ecrire un programme qui permet d’afficher la somme et le produit des 20 premiers
entiers de deux manières différentes :
1. En utilisant les boucles
2. En utilisant les fonctions prédéfinies.
Les fonctions en R
On définit une nouvelle fonction avec la syntaxe suivante :
fun_name <- function(par1, par2, par3,... ){
function_body
}
• fun_name : est le nom de la fonction (même règles pour les noms de
fonctions que les objets) ;
• par1, par2, par3,... les paramètres de la fonction, séparés par des
virgules simlpes
• function_body constitue le corps de la fonction, soit une instruction
ou un groupe d’instructions réunies par des accolades.
• L’appel de la fonction fun_name (arg1, arg2, arg3,... )
Les fonctions en R
Application
Ecrire une fonction, sans paramètres, qui permet d’afficher : Bonjour tout le monde
La définition
hello <- function( ) {
print("Bonjour tout le monde")}
L’appel
hello()
Ecrire une fonction, sans paramètres, qui permet d’afficher : صباح الخير جميعا
Les fonctions en R
Application
Ecrire une fonction avec des paramètres nom et année de naissance qui
permet d’afficher une information sur la personne ‘nom’
Exemple pour Alami Meriem née en 1999, elle affichera
Bonjour Alami Meriem, vous avez 24 ans
Les fonctions en R
Par défaut, une fonction doit être appelée avec le bon nombre
d'arguments.
Si la fonction est definit avec 2 paramètres 2, on doit l’appeler avec 2
arguments, ni plus, ni moins :
fun_name <- function(par1, par2){ function_body }
fun_name(arg1, arg2)
Cas des paramètres définits par défaut, xemple :
fun_name <- function(par1, par2=2){ function_body }
fun_name(arg1)
Les fonctions en R
On définit une fonction avec valeur de retour par la syntaxe suivante :
fun_name <- function(par1, par2, par3,... ){
function_body
return value
}
Value est aussi la valeur de la fonction
L’appel de la fonction V<-fun_name (arg1, arg2, arg3,... )
Les fonctions en R
Application
Une fonction à un seul paramètre, définit par f(x)=5*x
fct <- function(x) {
return (5 * x)
}
L’appel de la fonction
V <- fct (2)
Les fonctions en R
Application
Ecrire le script d’une fonction à un seul paramètre, définit par
my_tan(x)=sin(x)/cos(x)
Comparer my_tan(x) avec tan(x) définit en R.
Les fonctions de la famille apply()
R offre un ensemble de fonctions qui aident à appliquer une fonction (prédéfinie ou
définie par le programmeur) à une certaine ensemble de données, liste ou vecteur et
à retourner le résultat sous forme de liste ou de vecteur en fonction de la fonction que
nous utilisons.
Il existe 4 types de fonctions : apply(), lapply(), sapply(), et tapply()
[Link]
La fonctions sapply()
Elle applique une fonction sur des objets de liste et renvoie un objet de liste de même
longueur.
Syntaxe : sapply( x, fun )
Paramètres :
x vecteur d’entrée o objet
fun la function à appliquer
La fonctions sapply()
Les données La fonction
La fonctions sapply()
Les fonctions en R
Exercice :
1. Ecrire une fonction qui affiche le prix ttc d’un article dont le prix ht est
variable. La tva est fixée à 5%.
En utilisant cette fonction, afficher le prix ttc sachant que ht = 1000 dh
2. Réécrire la même fonction mais avec une valeur de retour.
3. Réécrire la même fonction mais avec tva variable.
4. Soit vec=(1000, 2000,3000,4000) un vecteur des prix hors taxe. On veut
calculer pour chaque élément du vecteur le prix ttc en utilisant la
fonction définit ci-dessus.
Avec la boucle for
Avec les operateurs sur des vecteurs
Avec la fonction sapply ()