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 →

Il peut être utile d’ajouter des flèches à vos graphiques R. La fonction arrows est là pour vous! Comme toujours commencez par regarder les arguments de la fonction : ?arrowsLes 4 premiers aruguments correspondent aux coordonnées (vecteurs de coordonnées pour plusieurs flèches) de début et de fin de la flèche. N’hesitez pas à utiliser la fonction locator() pour vous aider à trouver ces coordonnées. Ensuite vous pouvez choisir où se trouve le bout de la flèche avec l’arguement code. Enfin comme pour les courbes vous pouvez modifier l’épaisseur, la couleur et le type de trait avec lwd,col et lty. Voici un exemple #coordonnées des flechesRead More →

R intégre e natif tout ce qu’il faut pour réaliser un test de khi2 vous pouvez utilser la fonction chisq.testPrenons un cas courant de comparaison de deux variables qualitative : on veut savoir s’il existe une différence d’incidence dans un groupe donnée entre les hommes et le femmes pour une maladie donnée. 50 hommes dont 15 malades70 femmes dont 20 malades mat<-matrix(c(15,35,20,50), 2, 2, byrow=TRUE) chisq.test(mat) dans le cas présent on a une p.value de 0,97, on ne peut donc vraiment pas rejeter l’hypothese d’equivalence entre les hommes et les femmes.Read More →

Par exemple, si l’on veut placer des lettres sur un Barplot pour indiquer si les groupes sont significativement différents ou non ; utiliser la fonction locator() en précisant dans les parenthèses le nombre de points dont on cherche les coordonnées : il suffit alors de cliquer sur le graphe à l’endroit où l’on veut… barplot(c(1,2,3),space=c(0.5,0.5,0.5),ylim=c(0,3.5))locator(3)#Là, cliquer en 3 endroits du graphe…text(c(1,2.5,4),c(1.17,2.18,3.17),c(« a », »b », »c »),font=2)Read More →

Considérons un exemplela masse des larves de papillons varie avec la température et de la nourriture (plante)Pour tracer un barplot avec les barres d’erreur de ces deux facteurs : attach(data)mean.mass<-tapply(mass,list(T,H),mean)       # calcul de la moyenne pour chaque groupe sd<-tapply(mass,list(T,H),sd)                         # ou T est le facteur Température et H le facteur plantelength<-tapply(DTp,list(T,H),length)sqrt<-sqrt(length)length<-as.numeric(length)se<-sd/sqrt                                                   #calcul de l’erreur standard pour chaque groupegraphemass<-barplot(mean.mass,beside=TRUE,density=c(0,30),col=1,ylim=c(0,15.2),font=3,ylab= »masse (mg) »,)library(nmle)                                                #nécessaire pour appeler la fonction « segments » segments(graphemass, mean.mass -se,graphemass, mean.mass +se)       segments(graphemass-0.1, mean.mass -se,graphemass+0.1, mean.mass -se)segments(graphemass-0.1, mean.mass +se,graphemass+0.1, mean.mass +se)]Read More →