0

我想使用 R 包的 igraph 为图形打印派系。我要打印为 ABC 的数据格式(以 Res1、Res2、Res3 格式显示此数据...)

数据: 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

克利克

[[1]] + 3/5 个顶点,命名为:[1] ACB

这一切都很好。但是如果我们想打印到文件:

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

但是文件的结果是: V1 c(1, 2, 5)

我想打印数据作为节点名称 AB C. 什么是出路的家伙..!!

4

1 回答 1

3

用于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()函数来限制它。

于 2016-10-18T14:46:55.497 回答