Creating an adjacency list from a data.frame
igraph, r
Solution
Quick and dirty ...
> edges <- data.frame(nodea=c(1,2,4,2,1), nodeb=c(1,2,3,4,5))
> adjlist <- by(edges, edges$nodea, function(x) x$nodeb)
> for (i in as.character(unique(edges$nodea))) {
+ cat(i, ' -> ', adjlist[[i]], '\n')
+ }
1 -> 1 5
2 -> 2 4
4 -> 3
> adjlist
edges$nodea: 1
[1] 1 5
------------------------------------------------------------
edges$nodea: 2
[1] 2 4
------------------------------------------------------------
edges$nodea: 4
[1] 3
Problem
I have a data.frame with 2 columns: Node A, Node B. Each entry in the frame implies an edge in a graph between node A and B. There must be a nice one-liner to convert this data.frame into an adjacency list. Any hints?