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 = LETTERS,
b = LETTERS)
df2 <- data.frame(c = LETTERS,
d = LETTERS)
bind(df1, df2)
Error in match.names(clabs, names(xi)) :
les noms ne correspondent pas aux noms précédents
bind_rows(df1, df2)
Au tour de bind_cols
. Pas de soucis dans nos deux exemples du dessus, en base ou avec la fonction de {dplyr}. Testons avec deux nouveaux tableaux.
df3 <- data.frame(a = LETTERS[1:2],
b = LETTERS[1:2])
df4 <- data.frame(a = LETTERS[1:2],
b = LETTERS[1:2])
cbind(df3, df4)
a b a b
1 A A A A
2 B B B B
bind_cols(df3, df4)
a b a1 b1
1 A A A A
2 B B B B
Le réel plus de bind_cols
ici ? La gestion des noms de colonne : alors que la fonction de {base} duplique les noms, la fonction de {dplyr} ajoute un chiffre, afin d’éviter le souci des colonnes dupliquées, qui pourront plus tard mettre en péril une analyse.