функция слияния в Rarmadillo - PullRequest
       10

функция слияния в Rarmadillo

5 голосов
/ 22 сентября 2019

Как я могу реализовать простую функцию слияния для объединения двух матриц, каждая из которых имеет два столбца с общим столбцом x, используя Rarmadillo?Другими словами, я хочу функцию my_merge_cpp(mat1, mat2), которая даст тот же результат, используя следующий код R:

mat1 = as.matrix(data.frame(x=1:5, y1=2:6)) ## an example
mat2 = as.matrix(data.frame(x=3:7, y2=3:7)) ## an example
as.matrix(merge(mat1, mat2, all=FALSE))

1 Ответ

5 голосов
/ 22 сентября 2019

Я бы использовал 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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...