Issu du package magrittr et disponible dans le tidyverse, le pipe vous permet de passer de : library(tidyverse) data(« population ») head(summarise(group_by(filter(population, year > 1999),country),moyenne = mean(population))) à population %>% filter(year > 1999) %>% group_by(country) %>% summarise(moyenne = mean(population)) %>% head() Plus clair, n’est-ce pas ! Alors, comment ça marche ? C’est très simple : l’élément à gauche de %>% se retrouve en premier argument de la fonction à droite. Autrement dit, f(x,y) s’écrit x %>% f(y). Comment faire si l’élément de gauche n’est pas le premier argument de celui de droite ? Vous pouvez y faire référence en le remplaçant par un point : list(c(1,2,3), c(4,5,6),Read More →

Avec R, il est tout à fait possible de réaliser une multiple importation des fichiers CSV (autres types de fichiers). La fonction ci-dessous utilise les fonctions bind_rows et la syntaxe de la librairie dplyr. multmerge <- function(mypath = getwd()){ require(dplyr) dataset <- list.files(path=mypath, full.names=TRUE, pattern= ».csv ») %>% lapply(read.csv, header=TRUE, sep= »t ») %>% bind_rows() dataset } Dans cette fonction, l’objet mypath indique l’emplacement où se trouve tous les fichiers CSV. Par défaut, la fonction va chercher dans l’espace de travail actuel (getwd). Il est possible de le modifier manuel comme ci-dessous:  mydata <-  multmerge(mypath= »Nom/Du/Chemin/Des/Fichiers »)Read More →

Avec R, il est tout à fait possible de réaliser une multiple importation des fichiers CSV (autres types de fichiers). La fonction ci-dessous utilise les fonctions bind_rows et la syntaxe de la librairie dplyr. multmerge <- function(mypath = getwd()){ require(dplyr) dataset <- list.files(path=mypath, full.names=TRUE, pattern= »\.csv ») %>% lapply(read.csv, header=TRUE, sep= »t ») %>% bind_rows() dataset } Dans cette fonction, l’objet mypath indique l’emplacement où se trouve tous les fichiers CSV. Par défaut, la fonction va chercher dans l’espace de travail actuel (getwd). Il est possible de le modifier manuel comme ci-dessous:  mydata <-  multmerge(mypath= »Nom/Du/Chemin/Des/Fichiers »)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 →

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 →

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 →

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 →

for ( i in 1:10) { print(i) } Cette commande peut se traduire par : Pour (i allant de 1 à 10) { affiche i} Il faut noter que les parenthèses () servent à définir la variable et les valeurs qu’elle va prendre successivement à chaque tour de boucle. Les accolades {} servent à délimiter les actions à effectuer pour chacune des valeurs prises par la variable. IMPORTANT : R n’aime pas vraiment les boucles for, il est beaucoup plus efficace d’utiliser apply. Tout particulièrement pour les très grandes et longues boucles, apply fait cela en une fraction de seconde… alors que for peut mettreRead More →

L’Abcd’R est un site collaboratif de partage de scripts, de codes et d’astuces sur le logiciel R (GNU-R). Combien d’entre nous ont été bloqués par des soucis de base: « Comment importer des données excel ? », « Comment fait-on déjà pour utiliser apply ? »… Ce site se veut simple et didactique, chaque script est commenté, classé et répond à une problématique précise. Les scripts R proposés peuvent être lancés directement, c’est-à-dire que les packages  utiles sont précisés et que des petits jeux de données sont proposés lorsque nécessaire. N’hésitez pas vous aussi à proposer vos scripts R et à noter ceux des autres. Sur ce site vousRead More →