Lise Vaudor
21 mars 2017
Les instructions conditionnelles (if ou if else) permettent d’exécuter (ou non) certaines commandes en fonction de conditions spécifiées par l’utilisateur.
Voici la structure d’une instruction conditionnelle if:
if(condition){
...
...
...
}
Et if else:
if(condition){
...
}else{
...
}
Exemples:
Temperature <- 21
if(Temperature<15){
print("il fait frisquet aujourd'hui!")
}
Temperature <- 12
if(Temperature<15){
print("il fait frisquet aujourd'hui!")
}
## [1] "il fait frisquet aujourd'hui!"
Temperature <- 21
if(Temperature<15){
print("il fait frisquet aujourd'hui!")
}else{
print("il fait bon aujourd'hui!")
}
## [1] "il fait bon aujourd'hui!"
Les boucles for permettent d’exécuter des instructions de manière itérative (ou répétée).
Voici la structure d’une instruction instruction for:
for(compteur in sequence){
...
...
...
}
Par exemple:
for(i in 1:5){
print(paste("On en est à",i,"!"))
}
## [1] "On en est à 1 !"
## [1] "On en est à 2 !"
## [1] "On en est à 3 !"
## [1] "On en est à 4 !"
## [1] "On en est à 5 !"
Autre exemple:
layout(matrix(1:6,nrow=2))
for(i in 1:6){
plot(air[,i],
col="hotpink",pch=20,
main=colnames(air)[i])
}
L’utilisateur peut créer lui-même ses fonctions, par exemple s’il pense répéter plusieurs fois un même type de traitement.
Une fonction s’écrit de la manière suivante:
mafonction <-function(argument1,argument2){
...
...
resultat <- ...
return(resultat)
}
Par exemple, la fonction
Tconversion <-function(x){
reponse=(x-32)/1.8
return(reponse)
}
convertit les températures en degrés Fahrenheit, en températures en degrés Celsius. On peut par exemple la tester de cette manière:
Tconversion(451)
## [1] 232.7778
Tconversion <- function(x, type="FtoC"){
if(type=="FtoC"){
resultat <- (x-32)/1.8
}
if(type=="CtoF"){
resultat <- 1.8*x+32
}
if(type!="FtoC" & type!="CtoF"){
resultat <- "Pas compris!"
}
return(resultat)
}
Testons cette fonction:
Tconversion(451)
## [1] 232.7778
Tconversion(451, type="FtoC")
## [1] 232.7778
Tconversion(232, type="CtoF")
## [1] 449.6
Tconversion(232, type="kekek!")
## [1] "Pas compris!"
layout(matrix(1:5,nrow=5))
require(dplyr)
for (i in 5:9){
data_tmp <- filter(air, Month==i)
plot(data_tmp$Wind, data_tmp$Ozone,
main=paste("Mois", i),
col="lightskyblue",pch=20, cex=3)
}