У меня есть data.frame
с двумя переменными id.x
и id.y
, комбинация которых однозначно идентифицирует каждую строку, но повторяется много раз в наборе данных.Комбинат group_by и отдельный
Я хотел бы использовать dplyr
к group_by
id.x
таким образом, что каждая id.x
сочетается с отчетливым id.y
.
редактировать отредактированный пример, чтобы выделить отличающуюся количество unique
id.x.
и id.y
Пример:
id.x id.y
a o
a p
a q
c o
c p
c q
вернуться бы:
id.x id.y
a o
c q
dput, например:
structure(list(id.x = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("a",
"c"), class = "factor"), id.y = structure(c(1L, 2L, 3L, 1L, 2L,
3L), .Label = c("o", "p", "q"), class = "factor")), .Names = c("id.x",
"id.y"), row.names = c(NA, -6L), class = "data.frame")
редактировать Если мой желаемый результат может быть достигнут без использования group_by
или distinct
, что это тоже хорошо! Я также использую data.table
, и решение data.table
будет в порядке.
Как вы хотите, хотите 'спички', чтобы определить? Существует не «отдельный» вызов, который бы создал желаемый результат. – cdeterman
Я хотел бы, чтобы совпадения определялись таким образом, чтобы в окончательном 'data.frame' на' length (максимальная длина 'unique'' id.x' и 'id.y' находилась максимальная сумма (уникальная (id.x)) == длина (уникальный (id.y)) == nrow (data.frame) '. Это имеет смысл? – bjoseph
Не уверен, но как насчет 'library (data.table); setDT (df) [, lapply (.SD, unique)] '? –