如何在 R 中查找矩阵列中仅出现一次的值的索引?


要查找 R 矩阵列中仅出现一次的值的索引,我们可以按照以下步骤操作:

  • 首先,创建一个矩阵。

  • 然后,使用 which 函数以及 duplicated 函数和单个方括号进行子集化,以查找列中仅出现一次的值的索引。

示例 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

更新于: 2021年11月8日

273 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告