我在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
非常感谢您的解决方案。
答案 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)