如果值出现一次,如何在 R 矩阵列中找到该值的索引?

r programmingserver side programmingprogramming更新于 2025/4/8 22:37:17

要找到如果值出现一次,在 R 矩阵列中找到该值的索引,我们可以按照以下步骤 −

  • 首先,创建一个矩阵。

  • 然后,使用 which 函数以及重复函数和单个方括号进行子集化,以找到如果值出现一次,在列中的索引。

示例 1

创建数据框

让我们创建一个数据框,如下所示 −

M1<-matrix(rpois(25,10),ncol=1)
M1

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

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

查找某列中出现一次的值的索引

使用 which 函数以及 duplicated 函数和单方括号进行子集化,查找矩阵 M1 的列中出现一次的值的索引 −

M1<-matrix(rpois(25,10),ncol=1)
which(!(M1[] %in% M1[][duplicated(M1[])]))

输出

[1] 9 20 21

示例 2

创建数据框

让我们创建一个数据框,如下所示 −

M2<-matrix(round(rnorm(25),1),ncol=1)
M2

输出

执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −

     [,1]
[1,]   1.7
[2,]  -1.0
[3,]  -1.1
[4,]   0.8
[5,]   0.7
[6,]   0.7
[7,]   1.9
[8,]  -1.6
[9,]   2.7
[10,]  0.9
[11,] -0.6
[12,]  1.0
[13,] -2.1
[14,] -1.1
[15,]  1.4
[16,]  0.2
[17,] -0.7
[18,]  1.4
[19,]  0.6
[20,] -0.6
[21,]  0.0
[22,] -0.1
[23,]  0.6
[24,]  0.5
[25,] -0.9

查找某列中出现一次的值的索引

使用 which 函数以及 duplicated 函数和单方括号进行子设置,查找矩阵 M2 的列中出现一次的值的索引 −

M2<-matrix(round(rnorm(25),1),ncol=1)
which(!(M2[] %in% M2[][duplicated(M2[])]))

输出

[1] 2 3 6 7 10 12 14 16 17 18 19 21 23

相关文章