Mam data.frame
z dwiema zmiennymi id.x
i id.y
, których kombinacja jednoznacznie identyfikuje każdy wiersz, ale są one wielokrotnie powtarzane w zbiorze danych.Połączyć group_by i odrębny
ja jak używać dplyr
do group_by
id.x
id.x
tak, że każda jest dopasowana do odrębnego id.y
.
edit edytowany przykład podkreślić różną liczbę unique
id.x.
i id.y
przykład:
id.x id.y
a o
a p
a q
c o
c p
c q
wróci:
id.x id.y
a o
c q
dput na przykład:
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")
edit Jeśli mój pożądany rezultat można osiągnąć bez użycia group_by
lub distinct
że też jest w porządku! Używam również data.table
, a rozwiązanie data.table
byłoby w porządku.
Jak chcesz chcą do 'mecze' należy zdefiniować? Nie ma żadnego "wyraźnego" połączenia, które mogłoby stworzyć pożądany rezultat. – cdeterman
Chciałbym, aby dopasowania były zdefiniowane w taki sposób, aby maksymalna liczba "różnych" identyfikatorów id.x i "id.y" w ostatecznym 'data.frame' podlegała wartości' length (unique (id.x)) == length (unique (id.y)) == nrow (data.frame) '. Czy to ma sens? – bjoseph
Nie jestem pewien, ale co powiesz na 'library (data.table); setDT (df) [, lapply (.SD, unique)]? –