Я хочу сравнить две матрицы. Если элементы строки в первой матрице соответствуют элементам строки во второй матрице, то я хочу, чтобы строки во второй матрице были сохранены. Если строки не совпадают, я хочу, чтобы эти строки были пустыми. Прошу прощения, что недавно у меня был похожий вопрос, но я все еще не смог его решить.
ВХОД:
> mat1<-cbind(letters[3:8])
> mat1
[,1]
[1,] "c"
[2,] "d"
[3,] "e"
[4,] "f"
[5,] "g"
[6,] "h"
> mat2<-cbind(letters[1:5],1:5)
> mat2
[,1] [,2]
[1,] "a" "1"
[2,] "b" "2"
[3,] "c" "3"
[4,] "d" "4"
[5,] "e" "5"
Ожидаемый ВЫХОД:
> mat3
[,1] [,2]
[1,] "NA" "NA"
[2,] "NA" "NA"
[3,] "c" "3"
[4,] "d" "4"
[5,] "e" "5"
Я безуспешно пытался это:
> mat3<-mat2[ifelse(mat2[,1] %in% mat1[,1],mat2,""),]
Error in mat2[ifelse(mat2[, 1] %in% mat1[, 1], mat2, ""), ] :
no 'dimnames' attribute for array
Я боролся часами , поэтому любые предложения приветствуются.