la fonction sink permet de dérouter la sortie de R vers un fichier de sortie. elle peut etre pratique pour stocker des resultats sans s’embeter avec la mise en forme tout en gardant quelque chose de lisible. print(« coucou »)sink(« monfichier.txt »)print(« coucou ») # le résultat de la commande est ecrit dans monfichier.txtprint(head(iris))sink()Read More →

Parfois on peut être ammené à vouloir lire le code source d’une fonction.(pour s’en inspirer, la comprendre ou la modifier)Mais il est possible que ce code ne soit pas directement accessible, et il peut etre laborieux de le retrouver. La fonction getAnywhere fait le travail pour nous. Exemple comment voir le code source de la fonction print.surfit du package survival library(survival)print.survfit # introuvable survival::print.survfit  #ne fonctionne pasgetAnywhere(print.survfit) # eureka Fonction à avoir sous le coude…Read More →

Je viens de découvrir la fonction ave.. il s’agit d’une fonction extremement rapide qui permet de calculer une moyenne (ou autre chose..) par groupe. elle est trés efficace par rapport à des combinaisons de by et autres do.call # mettons nous dans un cas ou nous voulons calculer le score moyenne des hommes d’une part , et des femme d’autre part data<-data.frame(cbind(c(rep(« homme »,4),rep(« femme »,5)),c(1:4,3:7)))names(data)<-c(« genre », »score »)data$score<-as.numeric(data$score)dataattach(data)cbind(data,ave(score,genre)) L’efficacité d’ave se retrouve surtout sur les tres gos jeux de données…Read More →

La fonction sample permet de tirer, avec ou sans remise, un certain nombre d’éléments dans un vecteur. sample(1:10,1) # on tire une valeur au hasard entre 1 et 10 sample(1:10,3) # on en tire 3 sample(1:10,10)# on en tire 10.. en pratique on mélange les 10 éléments sample(1:10,3,replace = T)# on en tire 3 parmi 10.. avec remise ( on peut très bien avoir c(7,7,2) ) On peut aussi noter le paramètre prob qui permet de définir la probabilité de chaque élément d’être tiré au hasard.Read More →

R n’aime pas les boucles: c’est long, parfois ca plante..mais surtout c’est long :). Une des fonctions qu’il faut absolument maîtriser est apply. Elle permet de réaliser en parallèle la même opération sur toutes les lignes/ toutes les colonnes d’une matrice ou d ‘un jeu de données. Pour utiliser apply, il faut créer une fonction qui prend en paramètre un vecteur et qui nous ressort une transformation de ce vecteur. que ce vecteur soit de la forme qu’une ligne ou qu’une colonne de notre jeu de données (prendre en compte les variables quali, l’ordre des variables..) lancer apply sur son jeu de données, en précisantRead More →

Si vous voulez vous assurer qu’une instruction qui n’aboutit pas ne bloque pas votre script ou encore si vous avez besoin de gérer les exceptions, vous pouvez utiliser la fonction try. rm(list=ls(all=TRUE)) # pour partir d’une mémoire viergeprint(a)# va vous renvoyer un message d’erreur… et aura bloqué votre script si vous l’aviez lancé via source() par exempletry(print(a))# vous affiche l’erreur mais ne gêne pas la suite du processustry(print(a),silent=T)# ne vous affiche même pas l’erreur Ici l’exemple donné n’a que peu d’utilité, mais ce principe de gestion des erreurs (en particulier avec tryCatch) peut vous rendre beaucoup de services dans une boucle ou autre.Read More →

Lorsque l’on est face à un jeux de données, il peut être pratique d’en avoir une vue d’ensemble : de savoir si les variables sont quali ou quanti, de connaître les niveaux des facteurs etc… Exemple : on va créer un data.frame avec du quantitatif et du qualitatif x<-c(1,4,5,9) y<-c(« bleu », »bleu », »rouge », »noir ») data<-data.frame(x,y) str(data) La fonction str() renvoie le nombre d’observations du jeu de données, dresse la typologie de chaque variable (facteur/numérique/intervalle) et donne les premiers éléments. Quand il s’agit de facteurs, elle donne également le nombre de modalités.Read More →