bind {dplyr} | R Documentation |
This is an efficient implementation of the common pattern of
do.call(rbind, dfs)
or do.call(cbind, dfs)
for binding many
data frames into one. combine()
acts like c()
or
unlist()
but uses consistent dplyr coercion rules.
bind_rows(..., .id = NULL) bind_cols(...) combine(...)
... |
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 |
.id |
Data frames identifier. When |
bind_rows
and bind_cols
return the same type as
the first input, either a data frame, tbl_df
, or grouped_df
.
rbind_list()
and rbind_all()
have been deprecated. Instead use
bind_rows()
.
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)) ## Not run: # Rows do need to match when column-binding bind_cols(data.frame(x = 1), data.frame(y = 1:2)) ## End(Not run) 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))