suffixes
in merge
works only on common column names. Is there anyway to extend this to the rest of the columns as well without manually updating co
A simple solution:
mrg<-(merge(df1,df2, by = 'a', suffixes = c("1","2")))
setnames(mrg,paste0(names(mrg),ifelse(names(mrg) %in% setdiff(names(df1),names(df2)),"1","")))
setnames(mrg,paste0(names(mrg),ifelse(names(mrg) %in% setdiff(names(df2),names(df1)),"2","")))
> names(mrg)
[1] "a" "b1" "d1" "d2"
Edit: thanks to comments by Ricardo Saporta for cleaning this up considerably and teaching me a few new tips!