Une anova avec modèle mixte comme VARCOMP dans SAS Créons d’abord un jeu de données. On souhaite déterminer la précision et la répétabilité d’une analyse. Pour cela, la mesure est effectuée par 2 techniciens différents, sur des concentrations de produits différents sur 3 jours différents et avec 2 réplicats. library(dplyr) set.seed(42) data <- tibble( concentration = rep(c(10, 30, 50, 80), 3*2), technicien = rep(c(« A », « B »), each = 3*2*2), jour = rep(rep(1:3, each = 2*2), 2), replicat = rep(1:2, times = 2*3*2) mutate(mesure = ifelse( technicien == « A », 0.2 * concentration + rnorm(12, sd = 3), 0.2 * concentration + rnorm(12, sd = 2))) data #Read More →

Une opération courante quand on travaille avec des variables qualitatives (de type factor ou character) est de modifier les valeurs des modalités de cette variable. Ceci permet de les rendre plus courtes, plus explicites, ou même de les regrouper si on leur attribue le même nom. La fonction fct_recode, de l’extension forcats (qui fait partie du tidyverse) facilite ce type d’opérations. Celle-ci prend en premier argument un vecteur, puis une série de recodages sous la forme Nouvelle valeur = Ancienne valeur. Exemple : library(forcats) f <- c(« Fraise », « Framboise », « Pomme », « Fraise ») f <- fct_recode(f, « Ananas » = « Fraise », « Poire » = « Pomme ») f [1] Ananas Framboise Poire AnanasRead More →

Pour proposer un article sur ce site Internet, nous passons par notre compte Github ThinkR-open/abcdR. Vous devrez faire un fork de notre dépôt github, ajouter un article au format markdown dans le dossier _post et proposer une pull request. Les articles au format markdown (.md) devront avoir Le fichier doit avoir l’extension .md (il sera renommé automatiquement au moment du push) L’en-tête YAML suivante: — post_title: Titre de votre article author: votre_nom_d_auteur layout: post published: true categories: – graphique – tidyverse — Le contenu de votre article vient ici. le code R doit etre mis en forme comme cela : (…) le code R doitRead More →

Un shapefile est un fichier d’information géographique avec un format vectoriel. Il permet de représenter des points (e.g. villes), des lignes (e.g. routes) et des polygones (e.g. départements) avec un système d’information géographique. Le format shapefile est composé de plusieurs fichiers séparés (4 minimum): data.shp : informations de géométrie (coordonnées) data.prj : information de système de projection data.dbf : table des attributs data.shx : indice de position des géométries Dans R, deux packages majeurs sont utilisés pour manipuler les données géographiques de type vectoriel: {sp} : Le package de référence. Il utilise notamment la librairie {rgdal} pour lire les données géographiques, un package utilisant laRead More →

Est-ce que la valeur associée à votre variable est comprise entre deux autres valeurs ? Vous le saurez en faisant appel à between, du package {dplyr} ! {dplyr} est un package du tidyverse que l’on a jamais fini de découvrir. Regorgeant de fonctions facilitant la manipulation de données, ce package répond à quasiment toutes les questions que vous pourriez vous poser sur vos données… Et par exemple : comment savoir si une valeur est entre deux autres valeurs. Pour le savoir, direction between, qui prendra trois paramètres : votre valeur, la valeur de la borne de droite, et la valeur de la borne de gauche.Read More →

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 →

Les boîtes à moustaches vous plaisent, mais R base vous lasse ? Tournez-vous vers {ggplot2} ! Si vous ne savez pas encore comment créer un graphique avec {ggplot2}, nous vous invitons à visiter notre page dédiée. Ensuite, c’est tout simple, il suffit d’utiliser le geom geom_boxplot ! À l’intérieur de votre aes, x sera votre variable de groupe, et y la variable numérique à visualiser. library(ggplot2) data(« DNase ») ggplot(DNase, aes(Run, density)) + geom_boxplot() Comment lire une boîte à moustache ? Le gros trait central indique la médiane. Les deux extrémités de la boîte les 1er et 3e quartiles — 50% des observations se trouvent donc dansRead 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 →

Amoureux du paste de R base ? str_c du package {stringr} va vous plaire ! Pourquoi utiliser str_c ? Pour sa simplicité, mais aussi sa puissance. La première raison de choisir cette fonction : développée dans {stringr}, elle suit la convention d’écriture de toutes les fonctions de ce package. Ainsi, pour concaténer des caractères (strings en anglais), il vous suffira d’appeler str_c. Comme avec la fonction de base, vous pouvez choisir le séparateur : library(stringr) str_c(« une », « chaine », « de », « caractères », sep =  » « ) [1] « une chaine de caractères » str_c(« une », « chaine », « de », « caractères », sep = « _ ») [1] « une_chaine_de_caractères » À noter : vous pouvez utiliser la fonctionRead More →