有一个矩阵A,如:
[,1] [,2] [,3] [,4]
[1,] 1 4 7 6
[2,] 2 5 8 1
[3,] 5 1 7 8
和矩阵B类似:
[,1]
[1,] 8
[2,] 6
[3,] 1
[4,] 7
[5,] 5
[6,] 2
[7,] 3
[8,] 4
我想创建一个类似于A的矩阵C,用矩阵B中A值的等级替换A值。结果应为:
matrix C
[,1] [,2] [,3] [,4]
[1,] 3 8 4 2
[2,] 6 5 1 3
[3,] 5 3 4 1
答案 0 :(得分:3)
您可以使用match
并调整尺寸:
C <- match(A, B)
dim(C) <- dim(A)
-
示例:
> set.seed(123)
> (A <- matrix(sample(1:8), ncol = 4))
[,1] [,2] [,3] [,4]
[1,] 3 8 4 2
[2,] 6 5 1 7
> (B <- matrix(sample(1:8), ncol= 1))
[,1]
[1,] 5
[2,] 4
[3,] 6
[4,] 3
[5,] 8
[6,] 2
[7,] 1
[8,] 7
> (C <- match(A, B))
[1] 4 3 5 1 2 7 6 8
> (dim(C) <- dim(A))
[1] 2 4
> C
[,1] [,2] [,3] [,4]
[1,] 4 5 2 6
[2,] 3 1 7 8