2016-10-18 50 views
0

我想使用R包的igraph打印圖形的派系。我想打印的 ABC的數據格式(顯示RES1,的Res2,RES3格式此數據...)使用R igraph庫打印cliques

數據: RES1的Res2重量 AB 10 AC 1 CB 10 SB 1 LA 2

library(igraph) 
file <- read.table("GraphDemo.net", header=TRUE) 
graph <- graph.data.frame(file, directed=F) 
Cliq <- cliques(graph, min = 3, max = NULL) 

如果我們想打印在終端

Cliq手機了Cliq

[[1]] + 3/5頂點,命名爲: [1] A C B

哪個都非常好。但是,如果我們要打印到文件:

write.table(t(Cliq), file="demo.dat",sep = "\t",quote=F,row.names = FALSE) 

但是從文件中的結果是: V1 C(1,2,5)

我要打印數據,只是節點名稱 AB C. 什麼是出路的傢伙.. !!

回答

2

使用as_ids()將igraph.vs對象轉換爲名稱向量。你可以將它們編譯成列表並根據你的需要導出。

嘗試:

g <- erdos.renyi.game(10,0.5,type="gnp",directed=F) 
cliq<-cliques(g,min=3) 
V(g)$name <- c("a","b", "c","d","e","f","g","h","i","j") 
#Here's the function that will get the vertex names 
names <- lapply(1:length(cliq), function(x) as_ids(cliq[[x]])) 

現在,這種提取所有的派系。如果您只對3號團體感興趣,例如,您可以使用cliques()呼叫或lapply()功能來限制。