R: Efficient rbind of data frames, even if the column names...

smartbind {gtools} | R Documentation

## 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(..., fill=NA, sep=':', verbose=FALSE)

### Arguments

`...` | 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

`rbind`, `cbind`

### 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)

[Package gtools version 3.5.0 Index]