2017-04-25 51 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