2013-11-05 36 views
0

对igraph对象(g)进行了多次操作后,我的“id”属性变成了满嵌套列表。如何在igraph顶点属性中展平列表

它看起来像这样:

head(V(g)$id) 

[[1]] 
[[1]][[1]] 
[[1]][[1]][[1]] 
[1] "http://www.parliament.uk/" 


[[2]] 
[[2]][[1]] 
[[2]][[1]][[1]] 
[1] "http://www.businesslink.gov.uk/" 


[[3]] 
[[3]][[1]] 
[[3]][[1]][[1]] 
[1] "http://www.number10.gov.uk/" 

...等等。

我需要“UNNEST”这个名单,使其成为:

head(V(g)$id) 
[1] "http://www.parliament.uk/"  "http://www.businesslink.gov.uk/" 
[3] "http://www.number10.gov.uk/"  "http://www.ombudsman.org.uk/" 
[5] "http://www.hm-treasury.gov.uk/" "http://data.gov.uk/" 

嵌套表导致的问题时的igraph出口对象为graphml文件。这导致“id”被分配默认标签(例如n0,n1,n2 ...)。

我尝试了其他几个问题,特别是this one。但是,我无法让它工作。这真是令人沮丧!

回答

2

你只是在寻找unlist,也许?

L <- list(list(list("A")), list(list("B"))) 
L 
# [[1]] 
# [[1]][[1]] 
# [[1]][[1]][[1]] 
# [1] "A" 
# 
# 
# 
# [[2]] 
# [[2]][[1]] 
# [[2]][[1]][[1]] 
# [1] "B" 
# 
# 
# 
unlist(L) 
# [1] "A" "B" 
+0

谢谢,'unlist'在这里为问题的一部分做了诀窍。然而,看起来'contract.vertices'函数使事情变得复杂。 – timothyjgraham

+0

@timothyjgraham,我从来没有使用过igraph软件包,所以不知道我是否可以帮助你解决这个问题。 – A5C1D2H2I1M1N2O1R2T1

相关问题