I encountered a problem during a simple merging task and I'm looking for a better solution. I'm creating tables from a series of surveys (which I cannot merge). The tables have the same values, but different dimensions.

The data is below.

table x

```
x <- structure(c(44L, 167L), .Dim = 2L, .Dimnames = structure(list(
    c("similar", "compete")), .Names = ""), class = "table")

```

table y

```
y <- structure(c(69L, 213L, 154L, 4L, 29L, 32L), .Dim = c(3L, 2L), .Dimnames = structure(list(
    c("other", "compete", "similar"), c("college", "no college"
    )), .Names = c("", "")), class = "table")

```

table z

```
z <- structure(c(13L, 38L, 43L, 46L, 131L, 172L, 37L, 177L, 122L, 
8L, 34L, 12L, 16L, 114L, 70L, 20L, 17L, 27L), .Dim = c(3L, 6L
), .Dimnames = structure(list(c("other", "compete", "similar"
), c("skipped", "Democrat", "Independent", "Libertarian", "Republican", 
"other")), .Names = c("", "")), class = "table")

```

My solution was to use `cbind` and take out the disimilar columns like so

```
cbind(y[-1,], x,  z[-1,-1])

```

Then I learned that in R, row names are unreliable and the table turns out different if the order of cbind is mixed up. This makes creating table very unreliable. I'd like to be able to merge 3 or more tables, without having to worry that the order of the merge is messing up the data.

What is a better way of combining tables with different dimensions? 

I suspect that there might be a great way to `data.table` or `dplyr` but haven't figured it out.

Thanks and please let me know if i can make this question any more clear.