Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

smartbind

Efficient rbind of data frames, even if the column names don't match


Description

Efficient rbind of data frames, even if the column names don't match

Usage

smartbind(..., list, fill=NA, sep=':', verbose=FALSE)

Arguments

...

Data frames to combine

list

List containing data frames to combine

fill

Value to use when 'filling' missing columns. Defaults to NA.

sep

Character string used to separate column names when pasting them together.

verbose

Logical flag indicating whether to display processing messages. Defaults to FALSE.

Value

The returned data frame will contain:

columns

all columns present in any provided data frame

rows

a set of rows from each provided data frame, with values in columns not present in the given data frame filled with missing (NA) values.

The data type of columns will be preserved, as long as all data frames with a given column name agree on the data type of that column. If the data frames disagree, the column will be converted into a character strings. The user will need to coerce such character columns into an appropriate type.

Author(s)

Gregory R. Warnes greg@warnes.net

See Also

Examples

df1 <- data.frame(A=1:10, B=LETTERS[1:10], C=rnorm(10) )
  df2 <- data.frame(A=11:20, D=rnorm(10), E=letters[1:10] )

  # rbind would fail
## Not run: 
  rbind(df1, df2)
  # Error in match.names(clabs, names(xi)) : names do not match previous
  # names:
  #	D, E

## End(Not run)
  # but smartbind combines them, appropriately creating NA entries
  smartbind(df1, df2)

  # specify fill=0 to put 0 into the missing row entries
  smartbind(df1, df2, fill=0)

gtools

Various R Programming Tools

v3.8.2
GPL-2
Authors
Gregory R. Warnes, Ben Bolker, and Thomas Lumley
Initial release
2020-03-23

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.