Я бы использовал data.table
.Попробуйте это с большими данными, я был бы весьма удивлен, увидев, что вы победили его с помощью собственного решения Rcpp или RcppArmadillo.
Код
library(data.table)
mat1 <- data.table(x=1:5, y1=2:6) ## an example
mat2 <- data.table(x=3:7, y2=3:7) ## an example
mat1[mat2, on="x", nomatch=NULL]
Демо
R> library(data.table)
R> mat1 <- data.table(x=1:5, y1=2:6) ## an example
R> mat2 <- data.table(x=3:7, y2=3:7) ## an example
R> mat1[mat2, on="x", nomatch=NULL]
x y1 y2
1: 3 4 3
2: 4 5 4
3: 5 6 5
R>