Lorsque l’on manipule des jeux de données on est souvent amené à vouloir rajouter des colonnes, rajouter des lignes concaténer des jeux de données… Pour rajouter des colonnes, il faut utiliser la fonction cbind. Il faut que les 2 jeux de données aient le même nombre de ligne.cbind rajoute les colonnes par la droite. deuxcolonnes<-data.frame(matrix(« x »,150,2))names(deuxcolonnes)<-c(« colonne1″, »colonne2 »)deuxcolonnesrescol<-cbind(iris,deuxcolonnes)head(rescol)  Pour rajouter des lignes il faut utiliser la fonction rbind. Contrainte : il faut avoir le même nombre de colonnes et que ces colonnes aient le même nom. deuxlignes<-data.frame(matrix(1,2,5))names(deuxlignes)<-names(iris)deuxlignesreslign<-rbind(deuxlignes,iris)head(reslign)  Il faut tout de même veiller à conserver une homogénéité dans les variables (rajouter des character dans une colonne de numericRead More →

Le critère d’Akaike (AIC) est un critère utilisé pour la sélection de modèles. Ce critère représente un compromis entre le biais diminuant avec le nombre de paramètres libres et la parcimonie, volonté de décrire les données avec le plus petit nombre de paramètres possible. Il se calcule de la façon suivante -2log-likelihood + knpar. Par défaut on a souvent k=2. Le meilleur modèle est celui qui possède l’AIC le plus faible. On obtient ce critère en utilisant la fonction AIC(objet,k=?), k=2 par défaut. Prenons un exemple library(MASS) #pour la fonction fitdistr #  z est un vecteur contenant les données, on essaie de modéliser ces données parRead More →

Le critère d’Akaike (AIC) est un critère utilisé pour la sélection de modèles. Ce critère représente un compromis entre le biais diminuant avec le nombre de paramètres libres et la parcimonie, volonté de décrire les données avec le plus petit nombre de paramètres possible. Il se calcule de la façon suivante -2log-likelihood + knpar. Par défaut on a souvent k=2. Le meilleur modèle est celui qui possède l’AIC le plus faible. On obtient ce critère en utilisant la fonction AIC(objet,k=?), k=2 par défaut. Prenons un exemple library(MASS) #pour la fonction fitdistr #  z est un vecteur contenant les données, on essaie de modéliser ces données parRead More →

Il existe plusieurs façons de représenter des surfaces en 3D. Je vous en propose une qui utilise la fonction de base persp(). #on construit les fonctions à représenter f1 et f2 f1<-function(x,y){    15sin(sqrt(x^2+y^2))}################mu1<-0 mu2<-0 s11<-15 s12<-20 s22<-10 rho<-0.5 f2<-function(x,y){term1<-1/(2pisqrt(s11s22(1-rho^2)))term2<–1/(2(1-rho^2))term3<-(x-mu1)^2/s11term4<-(y-mu2)^2/s22term5<–2rho((x-mu1)(y-mu2))/(sqrt(s11)sqrt(s22))term1exp(term2(term3+term4-term5))}# on définit deux vecteurs correspondant aux axes x et yx<-seq(-15,15,length=50)y<-x# on calcule la valeur de z=f(x,y) pour tous les couples x[i],y[i] avec la fonction outerz1<-outer(x,y,f1)z2<-outer(x,y,f2)#on utilise la fonction perspx11()persp(x,y,z1,theta=30,phi=40,expand=0.5,col="lightblue",ticktype="detailed")x11()persp(x,y,z2,theta=40,phi=30,expand=0.5,col="lightgreen",ticktype="detailed") Il est possible d’ajouter des points au graphique en utilisant points(trans3d()).Regardez bien tous les arguments de la fonction persp() : ?persp. Ils sont nombreux et vous permettront d’obtenir votre surface sous l’angle que vous voulez. Enfin ilRead More →

Il existe plusieurs façons de représenter des surfaces en 3D. Je vous en propose une qui utilise la fonction de base persp(). #on construit les fonctions à représenter f1 et f2 f1<-function(x,y){    15*sin(sqrt(x^2+y^2))}################mu1<-0 mu2<-0 s11<-15 s12<-20 s22<-10 rho<-0.5 f2<-function(x,y){term1<-1/(2*pi*sqrt(s11*s22*(1-rho^2)))term2<–1/(2*(1-rho^2))term3<-(x-mu1)^2/s11term4<-(y-mu2)^2/s22term5<–2*rho*((x-mu1)*(y-mu2))/(sqrt(s11)*sqrt(s22))term1*exp(term2*(term3+term4-term5))}# on définit deux vecteurs correspondant aux axes x et yx<-seq(-15,15,length=50)y<-x# on calcule la valeur de z=f(x,y) pour tous les couples x[i],y[i] avec la fonction outerz1<-outer(x,y,f1)z2<-outer(x,y,f2)#on utilise la fonction perspx11()persp(x,y,z1,theta=30,phi=40,expand=0.5,col= »lightblue »,ticktype= »detailed »)x11()persp(x,y,z2,theta=40,phi=30,expand=0.5,col= »lightgreen »,ticktype= »detailed ») Il est possible d’ajouter des points au graphique en utilisant points(trans3d()).Regardez bien tous les arguments de la fonction persp() : ?persp. Ils sont nombreux et vous permettront d’obtenir votre surface sous l’angle que vous voulez. Enfin ilRead More →

R permet de faire beaucoup de chose avec les graphiques mais il faut coder ce qu’on veut faire. Nous allons voir ici comment ajouter des courbes, des points et des droites sur un plot. #on crée des données pour l’exemple x<-seq(0:100)a<-2b<-5y1<-ax+by2<-ax^0.5+by3<-ax^0.3+bxynoisy1<-y1+rnorm(length(y1),sd=0.2y1)ynoisy2<-y2+rnorm(length(y2),sd=0.2y2)ynoisy3<-y3+rnorm(length(y3),sd=0.2y3)#étape 1 on trace la fonction y1 avec un plotplot(y1~x,type=’l’,col="green",lwd=2,ylim=c(0,300))#étape 2 on veut ajouter les fonctions y2 et y3 sur le même graphiques : on utilise lineslines(y2~x,type=’l’,col="blue",lwd=2)lines(y3~x,type=’l’,col="purple",lwd=2)#étape 3 on veut ajouter les nuages de point ynoisy1 2 et 3 sur le graphique: on utilise pointspoints(ynoisy1~x,pch=20,col="grey")points(ynoisy2~x,pch=20,col="black")points(ynoisy3~x,pch=22,col="black")#étape 4 on veut ajouter une droite verticale pour x=50 : on utilise abline(v=) v pour vertical abline(v=50,col="red")#étape 5 on veutRead More →

R permet de faire beaucoup de chose avec les graphiques mais il faut coder ce qu’on veut faire. Nous allons voir ici comment ajouter des courbes, des points et des droites sur un plot. #on crée des données pour l’exemple x<-seq(0:100)a<-2b<-5y1<-a*x+by2<-a*x^0.5+by3<-a*x^0.3+b*xynoisy1<-y1+rnorm(length(y1),sd=0.2*y1)ynoisy2<-y2+rnorm(length(y2),sd=0.2*y2)ynoisy3<-y3+rnorm(length(y3),sd=0.2*y3)#étape 1 on trace la fonction y1 avec un plotplot(y1~x,type=’l’,col= »green »,lwd=2,ylim=c(0,300))#étape 2 on veut ajouter les fonctions y2 et y3 sur le même graphiques : on utilise lineslines(y2~x,type=’l’,col= »blue »,lwd=2)lines(y3~x,type=’l’,col= »purple »,lwd=2)#étape 3 on veut ajouter les nuages de point ynoisy1 2 et 3 sur le graphique: on utilise pointspoints(ynoisy1~x,pch=20,col= »grey »)points(ynoisy2~x,pch=20,col= »black »)points(ynoisy3~x,pch=22,col= »black »)#étape 4 on veut ajouter une droite verticale pour x=50 : on utilise abline(v=) v pour vertical abline(v=50,col= »red »)#étape 5 on veutRead More →

R est un langage itératif, c’est a dire que le logiciel va interpréter une ligne de code après l’autre.Pour gagner de la place, on peut vouloir écrire une série d’opérations sur une seule ligne. On perd en lisibilité, mais pour les choses simples cela peut être pratique. rm(list=ls(all=TRUE))a<-5b<-7# peut s’écrire sur une ligne grace au séparateur ;rm(list=ls(all=TRUE));a<-5;b<-7 # pour les boucles for while ou les if, on peut compresser comme cela x<-10for ( i in 1:10){print(i)x<-xiprint(x)print("coucou")} # s’écrit en une lignex<-10;for ( i in 1:10){print(i);x<-xi;print(x);print("coucou")}  Read More →

R est un langage itératif, c’est a dire que le logiciel va interpréter une ligne de code après l’autre.Pour gagner de la place, on peut vouloir écrire une série d’opérations sur une seule ligne. On perd en lisibilité, mais pour les choses simples cela peut être pratique. rm(list=ls(all=TRUE))a<-5b<-7# peut s’écrire sur une ligne grace au séparateur ;rm(list=ls(all=TRUE));a<-5;b<-7 # pour les boucles for while ou les if, on peut compresser comme cela x<-10for ( i in 1:10){print(i)x<-x*iprint(x)print(« coucou »)} # s’écrit en une lignex<-10;for ( i in 1:10){print(i);x<-x*i;print(x);print(« coucou »)}  Read More →

Dans les résultats d’analyse statistique, R affiche souvent des étoiles à côté des p values avec le code suivant : Signif. codes:  0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1 Il est possible de les enlever: #on utilise les données irisirissummary(iris)#pour l’exemple on fait une analyse de variance : la longueur des sépales est-elle expliquée par l’espèce?reg<-lm(iris$Sepal.Length~iris$Species)anova(reg)summary(reg) R affiche les résultats avec les étoiles pour les p-values : Analysis of Variance Table Response: iris$Sepal.Length              Df Sum Sq Mean Sq F value    Pr(>F)    iris$Species   2 63.212  31.606  119.26 < 2.2e-16 ***Residuals    147 38.956   0.265       On décide de les enlever en utilisant optionsRead More →