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


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

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

  • 然后,结合使用which函数、duplicated函数和单方括号进行子集选择,查找列中只出现一次的值的索引。

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

更新于:2021年11月10日

858 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告