De temps en temps, les données que l’on utilise peuvent être de grandes tailles et R ne peut pas les prendre en charge car sa mémoire est trop remplie. Dans ce cas 2 solutions s’offrent à vous : soit vous supprimez des éléments (dont vous pouvez avoir la liste avec ls() ) en utilisant rm(nom_ élément_à_supprimer), soit vous augmentez la capacité de la mémoire allouée à R en utilisant la fonction suivante : memory.limit(size=4000) # si par mégarde vous mettez une valeur trop grande, R vous retournera un message d’erreur plein d’humourRead More →

Lorsque vous avez beaucoup de fonctions dans un fichier, vous pouvez les charger en faisant un copier-coller dans la console ou en faisant ctrl+R après avoir sélectionné vos fonctions (pour windows). Mais ce n’est pas très pratique et surtout c’est souvent assez long. Je vous propose d’utiliser la fonction source. Cette fonction va interpréter ce qui se trouve dans un fichier.Concrètement, vous mettez vos fonctions et autres scripts a interpréter dans un fichier « function.R » ‘ (qui n’est rien d’autre qu’un fichier texte), vous l’enregistrez sur votre disque dur (dans votre espace de travail c’est le plus simple… l’important est de savoir ou il est). PuisRead More →

R va accumuler en mémoire un certain nombre d’objets (listes, vecteurs, fonctions…) Si vous voulez tous les effacer pour repartir d’une mémoire vierge (au lancement d’un script par exemple), vous pouvez utiliser cette commande :  rm(list=ls())   En pratique, la fonction rm vous permet d’effacer l’objet de votre choix   a<-5a#[1] 5rm(a)a#Error: object ‘a’ not foundRead More →

Lorsque l’on réalise des scripts qui vont tourner un certain temps avant d’aboutir au résultat final, il est essentiel d’en optimiser le fonctionnement pour gagner du temps. Il nous faut pour cela un bon indicateur : comment savoir le temps que dure une fonction ou un script ? Vous pouvez utiliser la fonction system.time system.time(for ( i in 1:10000){print(i)})system.time(for ( i in 1:10000){cat(i)})Read 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 →

Pour comparer 2 moyennes, vous pouvez utiliser le test de student. On se place dans le cas où l’on a deux séries de valeurs dont on veut comparer la moyenne.Les conditions pour utiliser ce test sont en pratique très peu contraignantes et il n’est pas vraiment nécessaire de s’embêter avec la normalités des données car : le test de student est très robuste à la non normalité des données dès que l’on a plus de 30 individus (n peut même descendre à 15), on a toujours quelque chose qui suit (plus ou moins) une loi normale les tests de normalité sont très très peu puissantsRead 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 →

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 →