automated query optimization in R Mar 8, 2018 Lately I’ve been reading the documentation for Apache Calcite. The natural join is associative and commutative. d1 = do.call(data.frame, as.list(1:10)) d1$key12 = d3 = do.call(data.frame, as.list(letters))