я могу получить дублируются строки в R
на data.table
dt
использованиемНайти дублированные строки с оригинальным
dt[duplicated(dt, by=someColumns)]
Однако, я хотел бы получить пары дублирующих строк и «не-дублей», для примера рассмотрим dt
:
col1, col2, col3
A B C1
A B C2
A B1 C1
Теперь dt[duplicated(dt, by=c('col1', "col2"))
бы мне что-то вдоль линий
col1, col2, col3
A B C2
Я хотел бы получить это вместе с рядом, что он не выбрал дублироваться, то есть
col1, col2, col3
A B C1
A B C2
Сравнение скорости ответов:
> system.time(dt[duplicated(dt2, by = t) | duplicated(dt, by = t, fromLast = TRUE)])
user system elapsed
0.008 0.000 0.009
> system.time(dt[, .SD[.N > 1], by = t])
user system elapsed
77.555 0.100 77.703
Где это 'by' аргумент пришел? Я не вижу никаких параметров 'by' на странице справки для'? Duplicated'. Используете ли вы 'duplicated()' из пакета, а не 'base'? – Chase
@Chase 'dt' - это' data.table', я забыл упомянуть об этом. – FooBar
применяется такая же логика, просто обновлен мой ответ, чтобы отразить реализацию 'data.table'. – Chase