134
Le logiciel R - Maˆ ıtriser le langage
+
if (imc<35) corpulence <- "obésité modérée" else {
+
if (imc<40) corpulence <- "obésité sévère" else {
+
corpulence <- "obésité morbide"}}}}}}
+ cat(paste("Votre IMC vaut: ",round(imc,3),".\nCela correspond
+
au type de corpulence: ",corpulence,".\n",sep=""))
+ }
Utilisons l` a sur un exemple.
> affiche.corpulence(IMC(70,1.82)$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: corpulence normale.
Il est en fait possible de simplifier le code de la fonction affiche.corpulence()
au moyen de la fonction switch(), comme nous pouvons le voir ci-dessous :
> affiche.corpulence <- function(imc) {
+ intervalles.IMC <- c(15,16.5,18.5,25,30,35,40,41)
+ code <- as.character(rank(c(imc,intervalles.IMC),
+
ties.method="max")[1])
+ corpulence <- switch(code,"2"="famine","3"="maigreur",
+
"4"="corpulence normale","5"="surpoids","6"="obésité modérée",
+
"7"="obésité sévère","8"="obésité morbide")
+ cat(paste("Votre IMC vaut: ",round(imc,3),".\nCela correspond
+
au type de corpulence: ",corpulence,".\n",sep=""))
+ }
> affiche.corpulence(IMC(70,1.82)$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: corpulence normale.
Toutefois, cette fonction renvoie des r´ esultats erron´ es lorsqu’elle est utilis´ ee
sur un vecteur :
> affiche.corpulence(IMC(c(70,74),c(1.82,1.90))$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: surpoids.
Votre IMC vaut: 20.499.
Cela correspond
au type de corpulence: surpoids.
Il est possible d’am´ eliorer cette fonction afin qu’elle fonctionne sur plusieurs
individus simultan´ ement. Vous noterez ´ egalement l’utilisation du mot r´ eserv´ e
NULL et de la fonction is.null() qui permettent de g´ erer de fa¸ con astucieuse
l’argument noms.
> affiche.corpulence <- function(imc,noms=NULL) {
+ intervalles.IMC <- c(15,16.5,18.5,25,30,35,40,41)
Le logiciel R - Maˆ ıtriser le langage
+
if (imc<35) corpulence <- "obésité modérée" else {
+
if (imc<40) corpulence <- "obésité sévère" else {
+
corpulence <- "obésité morbide"}}}}}}
+ cat(paste("Votre IMC vaut: ",round(imc,3),".\nCela correspond
+
au type de corpulence: ",corpulence,".\n",sep=""))
+ }
Utilisons l` a sur un exemple.
> affiche.corpulence(IMC(70,1.82)$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: corpulence normale.
Il est en fait possible de simplifier le code de la fonction affiche.corpulence()
au moyen de la fonction switch(), comme nous pouvons le voir ci-dessous :
> affiche.corpulence <- function(imc) {
+ intervalles.IMC <- c(15,16.5,18.5,25,30,35,40,41)
+ code <- as.character(rank(c(imc,intervalles.IMC),
+
ties.method="max")[1])
+ corpulence <- switch(code,"2"="famine","3"="maigreur",
+
"4"="corpulence normale","5"="surpoids","6"="obésité modérée",
+
"7"="obésité sévère","8"="obésité morbide")
+ cat(paste("Votre IMC vaut: ",round(imc,3),".\nCela correspond
+
au type de corpulence: ",corpulence,".\n",sep=""))
+ }
> affiche.corpulence(IMC(70,1.82)$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: corpulence normale.
Toutefois, cette fonction renvoie des r´ esultats erron´ es lorsqu’elle est utilis´ ee
sur un vecteur :
> affiche.corpulence(IMC(c(70,74),c(1.82,1.90))$IMC)
Votre IMC vaut: 21.133.
Cela correspond
au type de corpulence: surpoids.
Votre IMC vaut: 20.499.
Cela correspond
au type de corpulence: surpoids.
Il est possible d’am´ eliorer cette fonction afin qu’elle fonctionne sur plusieurs
individus simultan´ ement. Vous noterez ´ egalement l’utilisation du mot r´ eserv´ e
NULL et de la fonction is.null() qui permettent de g´ erer de fa¸ con astucieuse
l’argument noms.
> affiche.corpulence <- function(imc,noms=NULL) {
+ intervalles.IMC <- c(15,16.5,18.5,25,30,35,40,41)
