Tengo un marco de datos que consta de pares, se ve así:

Col_1  Col_2

A      B 
B      G
A      C
D      F
E      F   

Ahora, a partir de este marco de datos de pares, quiero crear una lista como salida que se ve así:

output[[1]]
> A B G C

output[[2]]
> D F E

El orden de la salida no importa (tanto de todos los elementos como dentro de un elemento)

He escrito un código extenso, que me parece ineficaz. (Me complace compartirlo si alguien quiere verlo) ¿Existe alguna manera eficiente de abordar este problema?

r
3
Tejas Bawaskar 25 sep. 2019 a las 00:12

1 respuesta

La mejor respuesta

Una forma involucra la biblioteca igraph:

clusters <- clusters(graph.data.frame(df, directed = FALSE))$membership
split(names(clusters), clusters)

$`1`
[1] "A" "B" "G" "C"

$`2`
[1] "D" "E" "F"
1
tmfmnk 24 sep. 2019 a las 21:18