使用在大数据集中出现一次的行查找 id



>我有一个数据集,我想找到在整个数据集中只出现一次的ID及其各自的行。

OrderTraffic1<-OrderTraffic[(duplicated(OrderTraffic$wayId, fromLast = FALSE)| 
            duplicated(OrderTraffic$wayId, fromLast = TRUE)),]

通过这段代码,我删除了各自 wayId 只出现一次的行,但我想通过其他命令存储这些删除的值

我们可以通过否定原始索引来提取索引

i1 <- (duplicated(OrderTraffic$wayId, fromLast = FALSE)| 
                duplicated(OrderTraffic$wayId, fromLast = TRUE))
i2 <- !i1

或者另一种选择是使用原始数据集setdiff以获取不在"OrderTraffic1"中的行

library(dplyr)
setdiff(OrderTraffic, OrderTraffic1)
#    wayId val
#1     2   3

或使用data.table中的fsetdiff

library(data.table)
fsetdiff(as.data.table(OrderTraffic), as.data.table(OrderTraffic1))
#   wayId val
#1:     2   3

数据

OrderTraffic <- data.frame(wayId = c(1, 1, 2, 3, 3), val = 1:5)

最新更新