igraph (R) 如何创建只有强 r 值的相关网络

use*_*430 5 r igraph correlation

我试图弄清楚如何使用 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")
Run Code Online (Sandbox Code Playgroud)

我尝试使用 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")
Run Code Online (Sandbox Code Playgroud)

关于如何获取我想要的图形文件的任何建议?

Gab*_*rdi 5

如果需要,您可以从图中删除边,或者首先从矩阵中删除它们。例如

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

以下是在创建图表后如何从图表中删除它们:

graph <- delete.edges(graph, E(graph)[ weight < 0.8 ])
Run Code Online (Sandbox Code Playgroud)