132
Le logiciel R - Maˆ ıtriser le langage
Nous pourrions penser ` a utiliser le code ci-dessous.
> for (i in 1:2) {
+ print(IMC(donnees[i,1],donnees[i,2]))
+ }
$Poids
Benoit
74
$Taille
Benoit
1.9
$IMC
Benoit
20.49861
$Poids
Pierre
70
$Taille
Pierre
1.82
$IMC
Pierre
21.13271
Mais le lecteur avis´ e aura remarqu´ e que de nombreuses fonctions R (comme
les op´ erateurs de division, de multiplication ou d’exponentiation) fonctionnent
tr` es bien avec des vecteurs. Il ne sera donc pas ´ etonn´ e par la sortie suivante :
> IMC(c(70,74),c(1.82,1.90))
$Poids
[1] 70 74
$Taille
[1] 1.82 1.90
$IMC
[1] 21.13271 20.49861
Le code ci-dessous illustre l’utilisation d’un param` etre poss´ edant une valeur
par d´ efaut, ainsi que celui de la fonction stop() qui permet de g´ erer certaines
erreurs d’entr´ ee.
> IMC <- function(poids,taille,unite.taille="m") {
+ if (length(poids) != length(taille))
+
stop("Les vecteurs poids et taille doivent
+
être de même longueur.")
+ if (unite.taille == "cm") taille <- taille/100
+ imc <- poids/taille^2
+ res <- list(Poids=poids,Taille=taille,IMC=imc)
+ return(res)
+ }
Le logiciel R - Maˆ ıtriser le langage
Nous pourrions penser ` a utiliser le code ci-dessous.
> for (i in 1:2) {
+ print(IMC(donnees[i,1],donnees[i,2]))
+ }
$Poids
Benoit
74
$Taille
Benoit
1.9
$IMC
Benoit
20.49861
$Poids
Pierre
70
$Taille
Pierre
1.82
$IMC
Pierre
21.13271
Mais le lecteur avis´ e aura remarqu´ e que de nombreuses fonctions R (comme
les op´ erateurs de division, de multiplication ou d’exponentiation) fonctionnent
tr` es bien avec des vecteurs. Il ne sera donc pas ´ etonn´ e par la sortie suivante :
> IMC(c(70,74),c(1.82,1.90))
$Poids
[1] 70 74
$Taille
[1] 1.82 1.90
$IMC
[1] 21.13271 20.49861
Le code ci-dessous illustre l’utilisation d’un param` etre poss´ edant une valeur
par d´ efaut, ainsi que celui de la fonction stop() qui permet de g´ erer certaines
erreurs d’entr´ ee.
> IMC <- function(poids,taille,unite.taille="m") {
+ if (length(poids) != length(taille))
+
stop("Les vecteurs poids et taille doivent
+
être de même longueur.")
+ if (unite.taille == "cm") taille <- taille/100
+ imc <- poids/taille^2
+ res <- list(Poids=poids,Taille=taille,IMC=imc)
+ return(res)
+ }
