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 →

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 →

La palette correspond à l’ensemble des couleurs actives. Vous pouvez l’afficher et la modifier avec la fonction palette() palette() Il existe de nombreuses palettes prédéfinies : hsv(), gray(), rainbow(), heat.colors(), terrain.colors(), topo.colors(), cm.colors().Vous pouvez ainsi modifier la palette : palette(gray(1:10/10))palette() Enfin il existe des librairies comme RColorBrewer qui permettent d’utiliser différentes palettes adaptées à divers graphiques.Read More →

La manière la plus simple d’ajuster une fonction à des données est la méthode « géométrique » des moindres carrés (minimiser la somme des carrés des écarts correspond à maximiser la vraisemblance avec une loi normale). La fonction nls de R permet de réaliser ceci de manière simple. Voyons deux exemples : #exemple modèle de croissance exponentiel #on crée une fonction qui correspond à un modèle de Malthus malthus<-function(t,N0,r){N0*exp(r*t)} t<-seq(0:100) NO<-2 r<-0.05 plot(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) #on crée des données en ajoutant du bruit sim<-malthus(t,NO,r)+rnorm(t,sd=0.3*malthus(t,NO,r)) plot(sim~t,pch=20) #on ajuste la fonction sur les données simulées en utilisant les moindres carrés fitmalthus<-nls(sim~malthus(t,a,b),start=list(a=1,b=0.01)) fitmalthus summary(fitmalthus) #on vérifie plot(sim~t,pch=20) lines(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) lines(malthus(t,coef(fitmalthus)[1],coef(fitmalthus)[2])~t,type=’l’,col=’red’,lwd=2) #exemple 2 avecRead More →

Pour éviter de se tromper dans l’ordre où les paramètres sont passés à une fonction, il vaut mieux les nommer. Ainsi l’ordre n’importera pas. Cela permet en plus de passer une valeur par défaut. essai<-function(par1=3, par2=20) {print(par1)print(par2)}essai()#[1] 3#[1] 20essai(1,2)#[1] 1#[1] 2essai(par1=1)#[1] 1#[1] 20essai(par2=10)#[1] 3#[1] 10essai(par2=10, par1=4)#[1] 4#[1] 10Read More →