如何在R矩阵中找到值的坐标?

R 矩阵中值的坐标是行和列的交集,即该特定值的行和列索引。这可以通过使用 which 函数找到。

例如,如果我们有一个名为 M 的矩阵,其中包含从 1 到 20 的值,那么我们可以使用下面给出的命令找到值 5 的坐标 -

which(M==5,arr.ind=TRUE)

示例

以下代码段创建了一个矩阵 -

M1<-matrix(rpois(80,10),ncol=4)
M1

创建以下矩阵 -

     [,1][,2][,3][,4]
[1,]   6  16  10  11
[2,]  10   4  15  10
[3,]   5  16  14   8
[4,]   8  11  14  13
[5,]  15  13  10   8
[6,]  10  11   6  13
[7,]   2  11  13  11
[8,]   6  16  15  10
[9,]   3   7  14   7
[10,]  8   4  10  11
[11,]  9   6  15  10
[12,] 14  12  11  10
[13,] 13   8  10   6
[14,]  7  13  11   4
[15,]  8   7  11  12
[16,] 12  13   9  12
[17,] 10   8   6   9
[18,]  3  11   8   9
[19,]  9   6  11  12
[20,] 10  18  12   9

要在 M1 中找到值 11 的坐标,请将以下代码添加到上面的代码段中 -

M1<-matrix(rpois(80,10),ncol=4)
which(M1==11,arr.ind=TRUE)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     row col
[1,]   4  2
[2,]   6  2
[3,]   7  2
[4,]  18  2
[5,]  12  3
[6,]  14  3
[7,]  15  3
[8,]  19  3
[9,]   1  4
[10,]  7  4
[11,] 10  4

示例 2

以下代码段创建了一个矩阵 -

M2<-matrix(rpois(80,2),ncol=4)
M2

创建以下矩阵 -

    [,1][,2][,3][,4]
[1,]  2  0   1   2
[2,]  1  1   1   2
[3,]  1  3   0   1
[4,]  3  1   8   3
[5,]  1  6   1   2
[6,]  2  2   2   1
[7,]  3  3   0   1
[8,]  3  1   1   1
[9,]  4  2   3   3
[10,] 4  1   0   3
[11,] 3  3   3   1
[12,] 3  2   5   1
[13,] 4  4   4   3
[14,] 3  5   4   2
[15,] 2  0   3   2
[16,] 1  2   5   2
[17,] 1  1   3   3
[18,] 2  3   4   1
[19,] 3  3   2   2
[20,] 4  1   3   0

要在 M2 中找到值 4 的坐标,请将以下代码添加到上面的代码段中 -

M2<-matrix(rpois(80,2),ncol=4)
which(M2==4,arr.ind=TRUE)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

     row col
[1,]  9  1
[2,] 10  1
[3,] 13  1
[4,] 20  1
[5,] 13  2
[6,] 13  3
[7,] 14  3
[8,] 18  3

示例 3

以下代码段创建了一个矩阵 -

M3<-matrix(rpois(40,5),ncol=2)
M3

创建以下矩阵 -

    [,1][,2]
[1,]  7   6
[2,]  6   7
[3,]  4   3
[4,]  5   5
[5,]  6   7
[6,]  4   5
[7,]  4   6
[8,]  6   4
[9,]  6   4
[10,] 8   1
[11,] 8   5
[12,] 5  13
[13,] 1   1
[14,] 5   5
[15,] 4   8
[16,] 6   5
[17,] 6   7
[18,] 9   6
[19,] 5   6
[20,] 4   8

要在 M3 中找到值 8 的坐标,请将以下代码添加到上述代码段中 -

M3<-matrix(rpois(40,5),ncol=2)
which(M3==8,arr.ind=TRUE)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

    row col
[1,] 10  1
[2,] 11  1
[3,] 15  2
[4,] 20  2