R中约束{igraph}的输出文件

时间:2015-11-02 23:06:21

标签: r igraph

我在R中使用igraph包来计算每个顶点(http://www.inside-r.org/packages/cran/igraph/docs/constraint)的Burt约束。

运行命令constraint(g, weights=NULL)后得到的输出如下:

       vertex1    vertex2    vertex3    vertex4    vertex5    vertex6    vertex7
    1.00000000 0.50000000 0.50000000 1.00000000 1.00000000 1.00000000 0.29986736
       vertex8    vertex9   vertex10   vertex11   vertex12   vertex13   vertex14
    1.00000000 1.00000000 0.25000000 1.00000000 1.00000000 0.50000000 1.00000000
       ...
    vertex1000
    0.25000000

我的问题是如何将其导出到具有以下结构的xlsx(或csv,txt)文件中:

vertex1 1.00000000
vertex2 0.50000000
vertex3 0.50000000
...
vertex1000 0.25000000

非常感谢您的解决方案。

2 个答案:

答案 0 :(得分:1)

感谢您输入MrFlick。我找到了答案。这比使用data.frame要复杂一点。我发布了代码,将Burt的约束结果从R中的igraph包转换为下面的顶点约束形式:

library("igraph")
library("reshape2")
edge_list=read.delim("your_valued_edgelist.txt")
g=graph.data.frame(edge_list, directed=FALSE, vertices=NULL)
x<-capture.output(melt(constraint(g, weights=NULL)))
x$id <- rownames(x)
x[1] <- NULL
y<-data.frame(vertex_id=substr(x,1,6), constraint_score=as.numeric(substr(x,8,13)))
write.table(y, file = "your_outcome.txt", col.names = TRUE, row.names = FALSE, sep="\t")

在我的情况下,我必须substring我的vertex_id前六个字符。

答案 1 :(得分:0)

如果将结果保存到变量x,请尝试

write.csv( data.frame(vertex=names(x), value=x), "out.csv", row.names=FALSE)