rbind does not check for column names when binding together vectors:
l = list(row1 = c(10, 20), row2 = c(20, 10)) names(l$row1) = c(\"A\", \"B\") names(l$row
You can use match:
match
l <- list(row1 = setNames(1:3, c("A", "B", "C")), row2 = setNames(1:3, c("B", "C", "A")), row3 = setNames(1:3, c("C", "A", "B"))) do.call(rbind, lapply(l, function(x) x[match(names(l[[1]]), names(x))]))
The result:
A B C row1 1 2 3 row2 3 1 2 row3 2 3 1