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