Regarder ce code : ff <- factor(c(‘AA’, ‘BA’, ‘CA’))ff#[1] AA BA CA#Levels: AA BA CAff[1:2]#[1] AA BA#Levels: AA BA CA dans le code ff[1:2] on garde en memoire le niveau CA, parfois cela ne correspond pas a ce que l’on veut. une solution est d’utiliser cette ligne de code : ff[1:2, drop=TRUE] #ou encore factor(ff[1:2])Read More →

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 →

 lorsque l’on utilise une variable de type qualitative (ordonnée ou non) R va classer les différents niveaux par ordre alphabétique,ce qui n’st pas toujours l’idial. voici la procédure permettant de changer l’ordre des niveaux de facteur: vec<-as.factor(c(« haut », »haut », »bas », »moyen », »moyen »))levels(vec) #l’ordre ne va pasvec2<-factor(vec,c(« bas », »moyen », »haut »))# si vous voulez simplement mettre un des niveau en premier pour l’utiliser en tant que référence en regressionvec3<-relevel(vec,ref= »moyen »)levels(vec)levels(vec2)levels(vec3)Read More →

Au bout d’un moment nous avons tous plusieurs packages installés dans R. les packages ont une vie et connaissent des mises à jour de temps. Pour installer ces mises à jour en ligne de commande il existe une fonction qui fait ca tres bien : update.packages(ask = F) trés pratique si on a plusieurs postes à gerer, en particulier à distance.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 →

R vous permet de sauvegarder directement vos graphique en pdf. Vous pouvez ainsi choisir les dimensions du fichier et obtenir la qualité voulue. Pour cela il suffit d’utiliser la fonction pdf. Les nombreux arguments de la fonction permettent de choisir de nombreux paramètres: ?pdf.Un exemple: setwd(« D:/R/image ») #on choisit le répertoire#pour l’exemple on trace la croissance radiale d’une plante host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}time<-c(0:200)# on utilise la fonction pdf avant le graphiquepdf(« croissance_plante.pdf », height=10,width=10) #les tailles sont à 7 par défaut#on trace le graphiquepar(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)plot(host(time)~time,type=’l’,lwd=4.5,col= »grey »,ylab= »Plant radius (cm) »,    xlab= » »,ylim=c(0,5))abline(h=1.1,col=’gray10′,lty=3)abline(v=50,col=’gray10′,lty=3)abline(h=3.15,col=’grey’,lty=3)abline(v=100,col=’grey’,lty=3)arrows(100,1.1,100,3.15,col=’red’,lwd=4,code=3)arrows(50,1.1,100,1.1,col=’black’,lwd=4,code=3) #on ferme le graphiquedev.off()#le pdf se situe dans votre répertoire Notez qu’il est possible de sauver vos graphique sous de nombreuxRead More →

R vous permet d’ajouter du texte à vos graphique en utilisant la fonction text. Il vous suffit de fournir les coordonnées du point où le texte doit être affiché. Si vous n’en avez aucune idée n’hésitez pas à utiliser la fonction locator() pour vous repérer.Un exemple: host<-function(t){5/(1+1000*exp(-1.18*t^0.4))}time<-c(0:200)par(mar=c(4, 6, 2, 1),cex.lab=1.3,cex.axis=1.2)plot(host(time)~time,type=’l’,lwd=4.5,col= »grey »,ylab= »Plant radius (cm) »,    xlab= » »,ylim=c(0,5))abline(h=1.1,col=’gray10′,lty=3)abline(v=50,col=’gray10′,lty=3)abline(h=3.15,col=’grey’,lty=3)abline(v=100,col=’grey’,lty=3)arrows(100,1.1,100,3.15,col=’red’,lwd=4,code=3)arrows(50,1.1,100,1.1,col=’black’,lwd=4,code=3)# on ajoute du texte en face des flèches en choisissant la couleur et la taille avec col et cextext(150,2.2, » croissance radiale »,col=’red’,cex=1.5)text(75,0.5, »dt »,cex=1.5)Read More →

Pour ajouter des cercles à un graphiques (ou simplement tracer des cercles) vous pouvez utiliser la fonction symbols qui permet d’ailleurs de tracer également des carrés, rectangles, étoiles etc…Un petit exemple pour les cercles: # coordonnées du centre des cerclesax<-c(20,20,20,80,80,80)by<-c(80,20,20,80,20,20)#tailles<-c(1,1,2,1,1,2)#couleurcouleur<-c(« black », »black », »grey », »blue », »green », »grey »)#on trace les cercles sur un graphiquesymbols(ax,by,circles=s,inches=1,fg=couleur,xlim=c(0,100),ylim=c(0,100),lwd=2.5) #pour le fun on ajoute un carré en rouge symbols(50,50,squares=10,inches=1,fg= »red »,add=TRUE,lwd=2.5)Read More →