>我有一个数据集,我想找到在整个数据集中只出现一次的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)