循环查看具有不同参数值的变量的结果

问题描述 投票:0回答:1

我需要一个循环来重复计算变量,并考虑 0.0 和 2.0 之间的所有分辨率级别。然后构建一个曲线图,显示哪个值最主要,无论使用什么分辨率。

    library(igraph)
    
    ###DADOSEXEMPLO##

valores <- c(1, 5, 3, 8, 2, 9, 3, 2, 3 ,2, 5, 3, 6, 5, 1, 5, 3, 4, 2, 2, 5, 6, 5, 7, 1, 2, 
             8, 12, 5, 1, 5, 3, 6, 5, 9, 3,3,4,5,7,8,2,7,8,4,3,1,4,4 )
matrixnet <- matrix(valores, 7, 7)
matcor <- cor(matrixnet, method = "spearman")
    cor_pequena <- 0.1
    matcor[] <- ifelse(matcor < cor_pequena, 0, matcor)
    matrixnetwork = graph.adjacency(matcor, mode = "undirected", 
                                    weighted = TRUE, 
                                    add.colnames = NULL, diag = FALSE)
    plot(matrixnetwork)

我想在分辨率参数内计算这个变量,从值 0.0 到 2.0,考虑每个点的值 0.01 到 0.01

这是函数,这里我有分辨率(我需要更改值)

    louvain <- cluster_louvain(matrixnetwork, weights = NULL, resolution = 0.87)
orig_memb_louvain <- membership(louvain)     
mod_louvain <- modularity(matrixnetwork, orig_memb_louvain,weights = NULL, resolution = 0.87)

我尝试了这个公式,但它不会改变分辨率值

valores_louvain<- vector("list", length = 10)

for(i in seq.int(10)) {
  valores_louvain[[i]] <- cluster_louvain(matrixnetwork, weights = NULL, resolution = i + 0.01)
}

在我想要构建图表之后,绘制分辨率参数每次变化所产生的值的曲线,以查看最突出的值。

PS:cluster_louvain 返回 2 个答案组:1,mod:0.13

r loops for-loop graph igraph
1个回答
0
投票

这个?



clv <- cluster_louvain(matrixnetwork, weights = NULL)
plot(clv, matrixnetwork)

# from 0 to 2 step = 0.01
valores_louvain <- c()
for(i in seq(from=0, to= 2, by=0.01)) {
  clv <- cluster_louvain(matrixnetwork, weights = NULL, resolution = i)
  valores_louvain[length(valores_louvain) + 1] <- tail(clv$modularity, 1)
}

dev.new(); plot(valores_louvain)

© www.soinside.com 2019 - 2024. All rights reserved.