In the following example
x <- data.frame(code = 7:9, food = c(\'banana\', \'apple\', \'popcorn\')) y <- data.frame(food = c(\'banana\', \'apple\', \'po
Here's a generic version of your base workaround:
merge(x, y)[, union(names(x), names(y))]