Поиск идентификатора с помощью строк, появившихся однажды в большом наборе данных - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть набор данных, и я хочу найти идентификаторы, которые появлялись только один раз во всем наборе данных вместе с соответствующими строками.

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

этим кодом я удалил строки, в которых соответствующий wayId появился только один раз, но я хочу сохранить эти удаленные значения другой командой

1 Ответ

0 голосов
/ 19 апреля 2019

Мы можем извлечь индекс, отрицая исходный индекс

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

или используя fsetdiff из data.table

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...