2016-06-30 50 views
0

我有一张由igraph命令'graph_from_adjacency_matrix'通过矩阵列表获得的8个图表。 我想将这8个图解析成8个独立的图,但是我没有找到关于这个过程的任何信息。igraph图表清单

下面请找到一个抽象的例子:`

A = matrix(c(2, 4, 3, 1, 5, 7), nrow=3,ncol=3) 
B = matrix(c(2, 3, 3, 2, 5, 6), nrow=3,ncol=3) 
C = matrix(c(0, 5, 3, 4, 5, 2), nrow=3,ncol=3) 
Matrix<-list(A,B,C) 
Graph<-lapply(Matrix,graph_from_adjacency_matrix,weighted = NULL,diag= FALSE) 

我想有对应于图三个新igraphs对象[[1]],图表[[2]],图表[[3] ]

有人可以帮我吗?

谢谢你在前进,

SOSA塞巴斯蒂安

+1

嗨索萨,你能提供一个可重复的例子,你是从什么开始? –

+0

嗨,感谢您的快速回答,我编辑我的帖子以添加一个抽象示例。 – Bas

+0

所以你想要做一些像'a = Graph [[1]]; b =图形[[2]]等等一直到8并构造8个新对象?这通常是一件坏事,你应该把它们放在可以通过索引号访问的列表中。 – Spacedman

回答

2

我也@Spacedman同意,对程序性的目的,它会更容易在列表或嵌套列表形式的图表工作。

这就是说,如果你想产生的图形动态地分配给新的变量,你可以使用assign功能,例如:

for(i in seq_along(Graph)) { 
    assign(paste0('g', i), Graph[i]) 
} 

这将产生变数g1, g2, ..., gn对应于每个列表中的条目。

此外,作为一个快速抛开,我建议避免使用大写的变量名称。通过大多数编码惯例(例如Hadley的http://adv-r.had.co.nz/Style.html),变量名应该全部小写。