我有一个包含2列的data.frame:节点A,节点B.帧中的每个条目都意味着节点A和节点B之间的图形边缘.
必须有一个很好的单行将这个data.frame转换成邻接列表.任何提示?
min*_*nda 11
既然你标记了这个igraph,那么使用内置功能呢?
> g <- graph.data.frame( edges )
> adjlist <- get.adjedgelist(g)
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是顶点是零索引的,随着igraph 0.6的变化而变化.
又快又脏......
> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |