Il s’agit d’un des formats de graphiques les plus populaires : le barplot est simple à réaliser, encore plus avec ggplot2. Du moins, si l’on connait ses spécificités. Package du tidyverse, {ggplot2} est un outil de visualisation ultra célèbre parmi les utilisateurs de R. Et pour cause, même si sa syntaxe peut surprendre à première vue, les résultats obtenus sont haut-de-gamme. Alors, comment réaliser un barplot ? Tout simplement avec le geom geom_bar(). À noter que vous pouvez l’utiliser pour deux formats de barplots, qui demandent chacun d’adapter votre code. Pour compter les occurences d’une variable, vous avez besoin de seulement spécifier en x laRead More →

Plus de robustesse, plus de sécurité, nous avons nommé bind_rows et bind_cols ! Package du tidyverse, {dplyr} regorge d’outils ultra efficaces pour la manipulation de données. Parmi eux, deux petites fonctions qui, à première vue, ne payent pas de mine… et pourtant. bind_rows et bind_cols vous permettent d’effectuer l’équivalent de rbind et cbind mais sont plus fonctionnelles, et affichent des résultats plus propres et exploitables. Commençons par créer deux tableaux. Si nous tentons de les juxtaposer avec la fonction de base rbind, nous aurons une erreur. À l’inverse, bind_rows fera le job, en peuplant les « colonnes manquantes » par des NA. library(dplyr) df1 <- data.frame(a =Read More →

Parfois, on souhaite appliquer une fonction à plusieurs colonnes de notre tableau, en fonction d’une condition. Pour cela, direction mutate_if(), du package {dplyr}. Comme son nom l’indique, mutate_if effectue une modification si la condition est remplie. Les arguments sont : Un tableau de données La condition à remplir (le test effectué qui devra renvoyé TRUE) La transformation à effectuer. Et pour comprendre par l’exemple : library(dplyr) data(« iris ») str(iris) ‘data.frame’: 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 … $ Sepal.Width : num 3.5 3 3.2 3.1 3 … $ Petal.Length: num 1.4 1.4 1.3 1.5 … $ Petal.Width : num 0.2Read More →

jdd <- data.frame(deslettres=letters[1:10],                   desnombres=seq(1:10),                   desfacteurs=c(rep(« oui »,5), rep(« non », 5))) levels(jdd$deslettres) [1] « a » « b » « c » « d » « e » « f » « g » « h » « i » « j » # il y a 10 niveaux pour la variable qualitative « deslettres » # en filtrant sur les nombres…. library(dplyr) unextrait<-filter(jdd,desnombres > 5) levels(unextrait$deslettres) [1] « a » « b » « c » « d » « e » « f » « g » « h » « i » « j » # …le nouveau jeu de données garde les anciens noms de niveaux de « deslettres » Pour s’en débarrasser, depuis R 2.12.0, la fonction droplevels() rend cette opération aisée… # …sur tout le jeu de données :  droplevels(unextrait) summary(unextrait) # …sur une variable en particulier : droplevels(unextrait$deslettres) summary(unextrait) # …sur tout le jeuRead More →

La fonction recast(), du package reshape2, permet d’obtenir une table de contingence en une seule étape à partir d’un data.frame. La fonction renvoie un data.frame.   library(reshape2) # On charge le package reshape2   airquality#En 2 étapes :  aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE) #On passe d’un format “Wide” à un format “Long” dcast(aqm, Month ~ variable, mean, margins = TRUE) #On obtient une table de contingence contenant la moyenne de chaque variable en fonction du mois  #En 1 seule étape :  recast(airquality, Month~ variable, id.var = 5:6, mean, na.rm=TRUE, margins=TRUE) #La fonction recast() permet d’obtenir une table de contingence en 1 seule étape  Read More →