Efficiently bind multiple data frames by row and column.

This is an efficient implementation of the common pattern of, dfs) or, dfs) for binding many data frames into one. combine() acts like c() or unlist() but uses consistent dplyr coercion rules.

bind_rows(..., .id = NULL)




Data frames to combine.

Each argument can either be a data frame, a list that could be a data frame, or a list of data frames.

When column-binding, rows are matched by position, not value so all data frames must have the same number of rows. To match by value, not position, see left_join etc. When row-binding, columns are matched by name, and any values that don't match will be filled with NA.


Data frames identifier.

When .id is supplied, a new column of identifiers is created to link each row to its original data frame. The labels are taken from the named arguments to bind_rows(). When a list of data frames is supplied, the labels are taken from the names of the list. If no names are found a numeric sequence is used instead.


bind_rows and bind_cols return the same type as the first input, either a data frame, tbl_df, or grouped_df.

Deprecated functions

rbind_list() and rbind_all() have been deprecated. Instead use bind_rows().

  • bind
  • bind_cols
  • bind_rows
  • combine
  • rbind_all
  • rbind_list
library(dplyr) one <- mtcars[1:4, ] two <- mtcars[11:14, ] # You can either supply data frames as arguments bind_rows(one, two) # Or a single argument containing a list of data frames bind_rows(list(one, two)) bind_rows(split(mtcars, mtcars$cyl)) # When you supply a column name with the `.id` argument, a new # column is created to link each row to its original data frame bind_rows(list(one, two), .id = "id") bind_rows(list(a = one, b = two), .id = "id") bind_rows("group 1" = one, "group 2" = two, .id = "groups") # Columns don't need to match when row-binding bind_rows(data.frame(x = 1:3), data.frame(y = 1:4)) # Rows do need to match when column-binding bind_cols(data.frame(x = 1), data.frame(y = 1:2)) bind_cols(one, two) bind_cols(list(one, two)) # combine applies the same coercion rules f1 <- factor("a") f2 <- factor("b") c(f1, f2) unlist(list(f1, f2)) combine(f1, f2) combine(list(f1, f2))
Documentation reproduced from package dplyr, version 0.5.0, License: MIT + file LICENSE

Community examples

Looks like there are no examples yet.