Efficient rbind of data frames, even if the column names don't match
Efficient rbind of data frames, even if the column names don't match
smartbind(..., list, fill=NA, sep=':', verbose=FALSE)
... |
Data frames to combine |
list |
List containing data frames to combine |
fill |
Value to use when 'filling' missing columns.
Defaults to |
sep |
Character string used to separate column names when pasting them together. |
verbose |
Logical flag indicating whether to display processing
messages. Defaults to |
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
( |
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.
Gregory R. Warnes greg@warnes.net
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.