Ich habe ein Datenframe mit Gruppen-IDs und ihre Mitglieder. Ich möchte alle Gruppen, die ein Mitglied teilen, kombinieren.R: Kombinieren Sie Gruppen mit überlappenden Elementen
Zur Veranschaulichung ich so etwas wie dieses haben könnte:
data.frame(group = c("a", "a", "b", "b", "c", "c"),
member = c(1, 2, 2, 3, 4, 5))
Hier Gruppen zu einer größeren Gruppe a und b gehören, weil sie Mitglied teilen 2. Ich möchte eine Kennung für diese großen Gruppen hinzufügen so dass ich am Ende mit etwas enden würde:
data.frame(largeg = c("A", "A", "A", "A", "B", "B"),
group = c("a", "a", "b", "b", "c", "c"),
member = c(1, 2, 2, 3, 4, 5))
Wie kann ich über die Implementierung dieses in R gehen? Eine Lösung, die in einer Magristr-Kette funktioniert, wäre großartig. Aber es ist keine Voraussetzung.
(ist mir egal, was die Kennungen aussehen. Sie sind alle Zahlen sein können, habe ich nur Großbuchstaben, Kleinbuchstaben und Zahlen hier, um die Dinge zu klären.)
Das ist genau das, was ich suchte. Danke, dass Sie auf die Graph-Natur des Problems hingewiesen haben. Ich habe mir die Freiheit genommen, Ihrer Antwort eine kaskadierbare Funktion hinzuzufügen. – severin
Froh, dass es geholfen hat. Ich habe deine Bearbeitung akzeptiert. – nicola