Поиск индексов совпадающих строк в двух матрицах разного размера - PullRequest
0 голосов
/ 08 мая 2019

Допустим, у вас есть матрица:

a=matrix(1:6, nrow = 2, byrow=TRUE)
> a
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

и b:

b=matrix(c(4,5,6,7,8,9,10,11,12,1,2,3), ncol=3, byrow=TRUE)
> b
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    7    8    9
[3,]   10   11   12
[4,]    1    2    3

Как вы находите индексы соответствующих строк матрицы "a" в "b"?Индексы результата для этого небольшого примера должны быть следующими: 4, 1

Помните, что я делаю фиктивный пример, мои матрицы очень большие (1M X 64).Записи являются уникальными, поэтому есть только одна строка матрицы «b», которая соответствует матрице «a».Язык R.

Ответы [ 2 ]

2 голосов
/ 08 мая 2019

Вы также можете объединить duplicated и which после rbind -ing b и a:

which(duplicated(rbind(b, a), fromLast = TRUE))
# [1] 1 4
1 голос
/ 08 мая 2019

Опция с match из base R

match(do.call(paste, as.data.frame(a)), do.call(paste, as.data.frame(b)))
#[1] 4 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...