Erstellung einer Kantenliste aus ID und Gruppierung von Vektoren
Ich habe einen Datenrahmen mit über 205.000 Zeilen, der wie folgt formatiert ist:
df <- data.frame(project.id = c('SP001', 'SP001', 'SP001', 'SP017', 'SP018', 'SP017'),
supplier.id = c('1224', '5542', '7741', '1224', '2020', '9122'))
In dem tatsächlichen Datenrahmen gibt es 6700+ eindeutige Werte vonproject.id
. Ich möchte eine Kantenliste erstellen, die Lieferanten zusammenfasst, die am selben Projekt gearbeitet haben.
Gewünschtes Endergebnis fürproject.id = SP001
:
to from
1224 5542
1224 7741
5542 7741
isher habe ich versucht mitsplit
, um eine Liste von project.id zu erstellen und dann @ auszuführlapply+combn
um alle möglichen Kombinationen von @ zu generiersupplier.id
in jeder Liste / Gruppe:
try.list <- split(df, df$project.id)
try.output <- lapply(try.list, function(x) combn(x$supplier.id, 2))
Gibt es eine elegantere / effizientere Methode ("in weniger als 2 Stunden berechnet"), um so etwas zu generieren?
Jede Hilfe wäre sehr dankbar