Я новичок в программировании ie, пытающийся сравнить две матрицы. Если элемент из первого столбца в mat1 соответствует какому-либо элементу из первого столбца в mat2, то я хочу, чтобы соответствующий элемент в mat1 был заменен соседним элементом (тот же ряд, другой столбец) на совпадение в mat2.
ВХОД:
mat1<-matrix(letters[1:5])
mat2<-cbind(letters[4:8],1:5)
> mat1
[,1]
[1,] "a"
[2,] "b"
[3,] "c"
[4,] "d"
[5,] "e"
> mat2
[,1] [,2]
[1,] "d" "1"
[2,] "e" "2"
[3,] "f" "3"
[4,] "g" "4"
[5,] "h" "5"
желаемый ВЫХОД:
> mat3
[,1]
[1,] "a"
[2,] "b"
[3,] "c"
[4,] "1"
[5,] "2"
Я попытался выполнить следующее безуспешно:
> for(x in mat1){mat3<-ifelse(x==mat2,mat2[which(x==mat2),2],mat1)}
> mat3
[,1] [,2]
[1,] "a" "a"
[2,] "2" "b"
[3,] "c" "c"
[4,] "d" "d"
[5,] "e" "e"
Любой совет будет очень ценится Потратили целый день, не заставляя его работать. Для меня не имеет значения, находятся ли элементы в матрице или во фрейме данных.
Спасибо.