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


R矩阵中一个值的坐标是指行和列的交点,也就是该值的行列索引。可以使用哪个函数来查找?

例如,如果我们有一个名为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

更新于:2021年11月22日

2K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告