Ho dati in questo modo:Creazione di un elenco vantaggio in R
ID=c(rep("ID1",3), rep("ID2",2), "ID3", rep("ID4",2))
item=c("a","b","c","a","c","a","b","a")
data.frame(ID,item)
ID1 a
ID1 b
ID1 c
ID2 a
ID2 c
ID3 a
ID4 b
ID4 a
e mi avrebbe bisogno come un elenco di bordi in questo modo:
a;b
b;c
a;c
a;c
b;a
i primi tre bordi provenienti da ID1, quarta da ID2, ID3 non ha spigoli, quindi niente da questo e quinto da ID4. Qualche idea su come realizzare questo? fondere/cast?
Grazie! Sto usando la tua versione precedente: lst <- lapply (split (item, DG), function (x) if (length (x)> = 2) t (combn (x, 2)) else NULL) nodes = as .data.frame (do.call (rbind, lst [! sapply (lst, is.null)])), ma potresti consigliarmi su come ID "take along" e alcune altre variabili (età, sesso ecc.) da il file originale df e averli come colonne in "nodi"? – ElinaJ
@ElinaJ Potresti aggiornare il tuo post con il nuovo set di dati e il risultato previsto – akrun
Per essere chiari e corrispondere alle risposte, ho creato un nuovo argomento: http://stackoverflow.com/questions/28449118/creating-edge-list-with -additional-variables-in-r – ElinaJ