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 →

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 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 sélectionnez une partie d’un jeu de données de départ, parfois certaines modalités de facteurs n’existent plus mais R les considère toujours pour une ACM par exemple et vous vous retrouvez avec des modalités qui n’existent pas dans votre jeu de données. Voici une petite astuce pour les éliminer. -> D’abord vous obtenez votre jeu de données à partir du jeu de données de départ qui regroupe toutes les modalités-> Puis l’astuce consiste à enregistrer ce jeu de données puis le recharger. write.csv2() #pour enregistrer le jeu de données avec les modalités inutilesread.csv2() #pour le recharger -> Faites ensuite un str(), les modalités inutilesRead More →

L’objectif est de calculer une moyenne sur des réplicats techniques/biologiques.Tous les réplicats d’une condition doivent avoir le même nom. Tout d’abord on crée une matrice d’accueil pour les résultats.Nombre de niveaux : le tableau initial contient y réplicats pour z conditions, donc y * z lignes.La matrice d’accueil n’aura donc plus que z lignes. Prenons l’exemple du jeu de données « iris ».Calculons les moyennes par variété pour chaque variable. data(iris)niveaux<-length(levels(iris$Species))iris.moyenne<-matrix(nrow=niveaux, ncol=(ncol(iris)-1))#ensuite on calcule la moyenne pour chaque condition, par variablefor (i in 1:(ncol(iris)-1)){iris.moyenne[,i]<-tapply(iris[,i], iris$Species, mean)}#il n’y a plus qu’à améliorer l’allure des résultatscolnames(iris.moyenne)<-colnames(iris[, 1:4])rownames(iris.moyenne)<-levels(iris$Species)iris.moyenne On peut également créer une matrice pour des écarts-types par exemple, en remplaçantRead More →

Il peut être pratique parfois de créer un facteur  correspondant à l’interaction de 2 facteurs. Pour cela vous pouvez utiliser tout simplement la fonction interaction() x=letters[rep(seq(from=1,to=5,by=1),rep(5,5))]y=rep(seq(from=1,to=5,by=1),5)interaction(x,y,sep= »_ »)#où sep est le séparateur entre les deux charactèresRead More →

On a parfois besoin d’un jeux de données qui reprend toutes les combinaisons possibles de plusieurs facteurs.Bien sûr on peut le faire à la main, mais il y a beaucoup plus intelligent : la fonction expand.grid fait ça très bien. expand.grid(c(« voiture », »velo »),c(« bleue », »rouge », »vert »),c(« mercedes », »peugeot »)) Cette commande permet de générer toutes les combinaisons possibles : voiture bleue mercedes, voiture bleue peugeot…Read More →