Les fonctions acast() et dcast() associées à la fonction melt(), du package reshape2, permettent d’obtenir une table de contingence. library(reshape2) # On charge le package reshape2 airquality aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE) #On passe d’un format “Wide” à un format “Long” #Pour un array acast(aqm, Month ~ variable, mean) #On obtient une table de contingence contenant la moyenne de chaque variable en fonction du mois acast(aqm, Month ~ variable, mean, margins = TRUE) #On ajoute les moyennes de chaque variable pour l’ensemble des mois #et les moyennes de chaque mois pour l’ensemble des variables #Pour un data.frame dcast(aqm, Month ~ variable, mean, margins =Read More →

La fonction melt(), qui fait partie du package reshape2, permet de modifier le format des données en fonction d’une ou plusieurs variables de référence (id). Ces variables correspondent en général aux variables qualitatives du data.frame. library(reshape2) # On charge le package reshape2 airquality aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE)   aqm   Read More →

La fonction install.packages() permet de télécharger des packages et de les installer sur l’ordinateur (On ne fait cela qu’une fois). La fonction library() permet ensuite de charger le package et de rendre les fonctionnalités de celui-ci disponibles (Il faut faire cela à chaque fois que l’on ouvre R). install.packages(« lubridate »)    #On télécharge le packages « lubridate » et on l’installe library(lubridate)                  #On charge ce package et on rend les fonctionnalités de celui-ci disponibles  Read More →

La fonction substr() permet d’extraire une sous-chaine à partir d’une chaine de caractères. Dans cette fonction le premier argument est la chaine de caractères, le deuxième correspond au début de sous-chaine et le troisième à la fin de la sous-chaine que nous voulons extraire. chaine <- « Bonjour tout le monde »  ss_chaine <- substr(chaine,9,12) #La sous-chaine débute au 9ème caractère et se finie au 12ème #Ainsi on extrait le mot « tout »Read More →

La fonction reshape() permet de modifier le format des données en fonction de la variable qu’on associe au paramètre « direction ». df <- data.frame(id = rep(1:4, rep(2,4)),                  visit = I(rep(c(« Before », »After »), 4)),                  x = rnorm(4), y = runif(4)) df # df est un data.frame de dimension 8 X 4 avec des répétitions  # On simplifie le tableau en enlevant les répétitions df2=reshape(df, timevar = « visit », idvar = « id », direction = « wide »)  # Le paramètre « direction » associé à la valeur « long » permet de récupérer le format original des données. reshape(df2, timevar = « visit », idvar = « id », direction = « long »)  Read More →

La fonction ddply(), faisant partie du package plyr, permet d’appliquer une fonction à une ou plusieurs colonnes d’un data.frame en fonction des modalités d’une ou deux variables, et d’ajouter ces données à ce data.frame. library(plyr)        # On charge le package plyr #On construit un data.frame : dfx <- data.frame(     group <- c(rep(‘A’, 8), rep(‘B’, 15), rep(‘C’, 6)),     sex <- sample(c(« M », « F »), size = 29, replace = TRUE),     age <- runif(n = 29, min = 18, max = 54))   ddply(dfx, .(group, sex), mutate,     mean = round(mean(age), 2),     sd = round(sd(age), 2)) # On obtient laRead More →

La fonction ddply(), faisant partie du package plyr, permet d’appliquer une fonction à des subdivisions d’un data.frame library(plyr) # On charge le package plyr # On construit un data.frame dfx <- data.frame(     group <- c(rep(‘A’, 8), rep(‘B’, 15), rep(‘C’, 6)),     sex <- sample(c(« M », « F »), size = 29, replace = TRUE),     age <- runif(n = 29, min = 18, max = 54)) ddply(dfx, .(group), summarize,       mean = round(mean(age), 2),       sd = round(sd(age), 2)) # On obtient la moyenne et l’écart type associé à l’âge en fonction du groupe ddply(dfx, .(group, sex), summarize,    Read More →

iris iris_bis <- iris[,-2] # On supprime la 2eme colonne iris_ter <- iris[-20,] # On supprime la 20eme ligne Pour le faire dans le cadre du {tidyverse}, reportez-vous à cette page : https://thinkr.fr/abcdr/comment-supprimer-une-colonne-ou-une-ligne-dans-un-dataframe-avec-le-tidyverse-et-dplyr/Read More →

Les fonctions de la famille apply() et la fonction which() peuvent permettre de compter les éléments identiques, négatifs, positifs ou encore supérieurs ou inférieurs à une certaine valeur dans un data.frame. iris# iris, un tableau de données m <- matrix(data=cbind(rnorm(30, 0), rnorm(30, 2), rnorm(30, 5)), nrow=30, ncol=3) # m, une matrice de données Calculer le nombre d’éléments identiques : ### Dans un tableau :lapply (iris, function(x) length(unique(x))) # retourne une liste sapply (iris, function(x) length(unique(x))) # retourne un vecteur numérique ### Dans une matrice : apply (m, 2,function(x) length(unique(x))) #retourne des entiers Calculer le nombre d’éléments supérieurs ou inférieur à une certaine valeur : ###Read More →

Il est parfois utile d’ajouter un niveau, absent à l’intérieur du facteur mais qui est susceptible de devoir être ajouter par la suite. x <- factor(c(« A », »A », »B », »A », »C », »A », »B », »A », »B », »B », »C », »A », »C »)) levels(x) <- c(levels(x), »D ») # On ajoute le niveau “D” au facteur x   On obtient :  x [1] A A B A C A B A B B C A C Levels: A B C DRead More →