Introduction à la programmation R (exercices)
Séance de révision numéro 3
gilles.hunault "at" univ-angers.fr
Inventer la fonction cd()
On désire fournir une interface commune aux fonctions getwd(), setwd() et rchoose.dir() en utilisant une seule fonction que l'on nomme cd. Voici le comportement souhaité :
sans paramètre, la fonction cd() donne le chemin courant.
si on fournit le paramètre point d'interrogation, la fonction cd() fournit une interface pour choisir le répertoire et s'y rend.
si on fournit un paramètre autre que le point d'interrogation, la fonction cd() s'y rend, sauf si le chemin n'existe pas.
Donner le code-source de cette fonction cd().
Voici cela sur des exemples d'utilisation :
> cd() le chemin courant est /home/BigData/public_html/wstat/Programmation_R/Programmation_introduction > monChemin <- cd("?") # [voir la copie d'écran ci-dessous] le chemin courant est /home/BigData/public_html/wstat > cd("..") le chemin courant est /home/BigData/public_htmlSolution
Les commentaires du code-source doivent suffire comme explications :
############################################################ cd <- function(chemin="") { ############################################################ # sans paramètre, on utilise getwd() if (chemin=="") { chemin <- getwd() cat("le chemin courant est",chemin,"\n") return( invisible(chemin) ) # à détailler } # fin si # si le paramètre est "?", on utilise rchoose.dir() # du package rChoiceDialogs if (chemin=="?") { library(rChoiceDialogs) chemin <- rchoose.dir() setwd(chemin) cat("le chemin courant est",getwd(),"\n") return( invisible(chemin) ) } # fin si # pour tout autre paramètre, on utilise setwd() setwd(chemin) cat("le chemin courant est",getwd(),"\n") return( invisible(chemin) ) } # fin de fonction cd
Retour à la page principale de (gH)