如何在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
广告