Sur le Web, j'ai trouvé que rbind()
est utilisé pour combiner deux trames de données et la même tâche est effectuée par bind_rows()
fonction .
Alors je ne comprends pas quelle est la différence entre ces deux fonctions et laquelle est plus efficace à utiliser ??
Mis à part quelques différences supplémentaires, l'une des principales raisons d'utiliser bind_rows
over rbind
consiste à combiner deux trames de données ayant un nombre différent de colonnes. rbind
renvoie une erreur dans un tel cas alors que bind_rows
affecte "NA
" aux lignes de colonnes manquantes dans l'un des blocs de données où la valeur n'est pas fournie par les blocs de données.
Essayez le code suivant pour voir la différence:
a <- data.frame(a = 1:2, b = 3:4, c = 5:6)
b <- data.frame(a = 7:8, b = 2:3, c = 3:4, d = 8:9)
Les résultats des deux appels sont les suivants:
rbind(a, b)
> rbind(a, b)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
library(dplyr)
bind_rows(a, b)
> bind_rows(a, b)
a b c d
1 1 3 5 NA
2 2 4 6 NA
3 7 2 3 8
4 8 3 4 9
Bien que bind_rows()
soit plus fonctionnel dans le sens où il combinera des blocs de données avec différents nombres de colonnes (en affectant NA
aux lignes avec ces colonnes manquantes), si vous combinez des blocs de données avec le même colonnes, je recommanderais rbind()
.
rbind()
est beaucoup plus efficace en termes de calcul dans les cas où les données que vous combinez sont formatées de la même manière, et cela génère simplement une erreur lorsque le nombre de colonnes est différent. Cela vous fera gagner beaucoup de temps pour les ensembles de données volumineux. Je recommanderais fortement rbind()
pour ces situations. Néanmoins, si vos données ont des colonnes différentes, vous devez utiliser bind_rows()
.