2017-04-25 47 views
1

在这里工作是一个例子:graph.intersection不IGRAPH

df1 <- graph.data.frame(V1=c(1,1,2,2,3,4), V2=c(2,3,3,5,5,5)) 
g1 <- graph.data.frame(df1, directed=F) 
df2 <- data.frame(V1=c(1,2,2,3,4), V2=c(3,3,5,5,5)) 
g2 <- graph.data.frame(df2, directed=F) 
df3 <- data.frame(V1=c(1,2,3,4), V2=c(3,3,5,5)) 
g3 <- graph.data.frame(df3, directed=F) 
df4 <- data.frame(V1=c(1,1,2,3), V2=c(2,3,4,5)) 
g4 <- graph.data.frame(df4, directed=F) 

现在创建一个列表

mylist <- list(g1, g2, g3, g4) 

现在寻找交集

res <- intersection(mylist, keep.all.vertices=FALSE) 

但我得到这个奇怪的结果:

Error in useMethod(intersection): no applicable method for 'intersection' applied to an object of class list 

任何帮助,我使用igraph version 1.0.1

+0

相反,只使用'交叉点(g1,g2,g3,g4,keep.all.vertices = FALSE)' – G5W

+0

是的,这是有效的,但是我有700个图表,并且它们在手册中陈述了'... \t 图形对象或图形对象列表。'所以我想知道,如果这是一个错误或我的代码 – user2380782

回答

1

这似乎是一个黑客攻击的一位,但你可以得到你正在寻找的功能理解:

do.call(intersection, c(mylist, keep.all.vertices=FALSE)) 
+0

好,这个作品!谢谢@ G5W – user2380782