302
Le logiciel R - Maˆ ıtriser le langage
6.5- Lorsque nom <- function(pr´ enom="Peter",nom="L") {
paste(pr´ enom,nom)}, quel est l’objet R retourn´ e par :
– nom(pr´ enom="Ben")
– nom(pr="Ben")
– nom(n="D",p="R")
6.6- R´ e´ ecrivez la d´ eclaration de la fonction suivante toujours en une seule ligne
de commande, mais sans utiliser le s´ eparateur de commande « ; » :
nom <- function(nom) { if(missing("nom"))
nom <- "Peter"; cat(nom,"\n") }
6.7- Quelle est la sortie lors de l’ex´ ecution de noms("peteR","Ben","R")
lorsque :
– noms <- function(...) c(...)
– noms <- function(...) list(...)
– noms <- function(...) for(nom in c(...)) print(nom)
– noms <- function(...) for(nom in list(...)) print(nom)
Mˆ eme question lors de l’ex´ ecution de
noms(c("peteR","L"),c("Ben","L"),c("R","D"))
6.8- Lorsque noms <- function(noms=c("Ben","R"),...) c(noms,...),
quels sont les objets R retourn´ es par noms("PeteR"), noms(nom="PeteR")
et noms(noms="PeteR") ?
Mˆ eme question lorsque
noms <- function(...,noms=c("Ben","R")) c(noms,...).
6.9- Cr´ eez une fonction constructeur Homme() g´ en´ erant un objet de classe
"Homme" avec pour champs pr´ enom et nom (plac´ e dans un objet du type
list). Cr´ eez la m´ ethode bonjour.Homme() dont le but est uniquement
d’afficher "bonjour Monsieur PRENOM NOM!" (sans oublier "\n" en fin
d’affichage !) pour un objet ayant respectivement les valeurs "PRENOM" et
"NOM" pour les champs pr´ enom et nom. Lorsque homme bonjour.Homme(homme) et bonjour(homme) ? Que faut-il ´ eventuellement
ex´ ecuter pour que les deux r´ esultats soient identiques ?
6.10- Cr´ eez les fonctions analogues pour la classe "Femme" (indice : ne pas oublier de mettre ` a jour le genre dans bonjour.Femme()). Lorsque femme
<- Femme("Dominique","L"), que produisent les ex´ ecutions des commandes suivantes : bonjour.Homme(femme), bonjour.Femme(femme) et
bonjour(femme) ?
6.11- Lorsque bienvenu <- function(...) for(individu in list(...)){
bonjour(individu)}, que renvoie bienvenu(homme,femme) ?
Et lorsque bienvenu <- function(...) for(individu in c(...)){
bonjour(individu)} ?
Mˆ eme question lorsque bonjour.default <- function(obj){
cat("Bonjour",obj,"!\n")}.
Précédent

- 335/701

Suivant