如何在 R 中的 data.table 对象列中找到值出现一次时的索引?

r programmingserver side programmingprogramming更新于 2025/4/7 13:52:17

要查找 R 中的 data.table 对象列中值出现一次时的索引,我们可以按照以下步骤 −

  • 首先,创建一个 data.table 对象。

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

示例 1

创建 data.table 对象

让我们创建一个 data.table 对象,如下所示 −

library(data.table)
x<-sample(1:10,25,replace=TRUE)
DT1<-data.table(x)
DT1

输出

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

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

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

使用 which 函数以及 duplicated 函数和单个方括号进行子集化,查找 data.table 对象 DT1 的列 x 中出现一次的值的索引 −

library(data.table)
x<-sample(1:10,25,replace=TRUE)
DT1<-data.table(x)
which(!(DT1$x %in% DT1$x[duplicated(DT1$x)]))

输出

[1] 1 10

示例 2

创建 data.table对象

让我们创建一个 data.table 对象,如下所示 −

library(data.table)
y<-rpois(25,10)
DT2<-data.table(y)
DT2

输出

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

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

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

使用 which 函数以及 duplicated 函数和单个方括号进行子集化,查找 data.table 对象 DT2 的 y 列中出现一次的值的索引 −

library(data.table)
y<-rpois(25,10)
DT2<-data.table(y)
which(!(DT2$y %in% DT2$y[duplicated(DT2$y)]))

输出

[1] 4 7 11 18 23 25

相关文章