5

graph.adjacency を使用して、相関行列 (値 -1 から 1) を使用してグラフを作成する方法を見つけようとしていますが、グラフ ファイルに含まれる最も強い相関エッジ (<-.8 または >) のみを持ちます。 8

これは、完全なデータセットを含むネットワークを正常に提供するコードです。

corrdata<-read.csv("spearmancorr.csv",header=FALSE)
cor_mat<-as.matrix(corrdata)
diag(cor_mat)<-0
graph<-graph.adjacency(cor_mat,weighted=TRUE,mode="lower")

テストするために、delete.edges を使用してネットワークを少なくとも >.8 に減らしてみましたが、結果のファイルはまだ 0.8 未満のエッジの重みを示しています。

graph.copy <- delete.edges(graph, which(E(graph)$weight !<0.8)-1)
write.graph(graph.copy, file="gsig80.graphml", format="graphml")

必要なグラフ ファイルを取得する方法について何かアドバイスはありますか?

4

1 に答える 1

5

必要に応じてグラフからエッジを削除したり、最初にマトリックスからエッジを削除したりできます。例えば

cor_mat[ cor_mat < .8 ] <- 0
diag(cor_mat) <- 0
graph <- graph.adjacency(cor_mat, weighted=TRUE, mode="lower")

作成後にグラフからそれらを削除する方法は次のとおりです。

graph <- delete.edges(graph, E(graph)[ weight < 0.8 ])
于 2013-11-14T02:28:57.267 に答える