如何解决多个转移矩阵的介数中心性计算
我对如何解决这个问题有点迷茫。
例如,我有 2 个转移概率矩阵,我想将其转换为 2 个图并保存 2 个节点的介数中心性:3110 和 110。我想将结果保存在 2 个单独的 csv 文件中。这可以使用 igraph 来完成吗?
我正在处理大型数据集。如何读入 R n
个 csv 文件 - 特定文件的位置 - 使用转换矩阵 b.) 从每个转换矩阵创建一个图; c.) 计算特定节点介数中心性
样本数据
df1<-structure(list(X1 = c(110,111,210,300,310,390,1110,3110,3240,3290,3310,3727,3811,3819,3830,5190,7241,7330,8210,9000,9130,9380,9390,9960),`110` = c(0.939393939,1,0),`111` = c(0.03030303,0.333333333,`210` = c(0,0.571428571,0.025,0.5,0.25,`300` = c(0,0.142857143,`310` = c(0,0.666666667,`390` = c(0,0.111111111,`1110` = c(0,0.925,0.1,`3110` = c(0,`3240` = c(0,`3290` = c(0.03030303,`3310` = c(0,`3727` = c(0,`3811` = c(0,`3819` = c(0,0.166666667,`3830` = c(0,`5190` = c(0,`7241` = c(0,`7330` = c(0,`8210` = c(0,0.777777778,1),`9000` = c(0,`9130` = c(0,0.833333333,`9380` = c(0,0.7,`9390` = c(0,`9960` = c(0,0)),class = c("spec_tbl_df","tbl_df","tbl","data.frame"
),row.names = c(NA,-24L),spec = structure(list(cols = list(
X1 = structure(list(),class = c("collector_double","collector"
)),`110` = structure(list(),"collector")),`111` = structure(list(),`210` = structure(list(),`300` = structure(list(),`310` = structure(list(),`390` = structure(list(),`1110` = structure(list(),`3110` = structure(list(),`3240` = structure(list(),`3290` = structure(list(),`3310` = structure(list(),`3727` = structure(list(),`3811` = structure(list(),`3819` = structure(list(),`3830` = structure(list(),`5190` = structure(list(),`7241` = structure(list(),`7330` = structure(list(),`8210` = structure(list(),`9000` = structure(list(),`9130` = structure(list(),`9380` = structure(list(),`9390` = structure(list(),`9960` = structure(list(),"collector"))),default = structure(list(),class = c("collector_guess",skip = 1L),class = "col_spec"))
df2<-structure(list(X1 = c(110,5310,9120,9390),`110` = c(0.970588235,0.125,`310` = c(0.029411765,0.6,0.981481481,0.037037037),`5310` = c(0,0.75,0.037037037
),0.2,0.875,`9120` = c(0,0.018518519,0.925925926)),"data.frame"),-9L),spec = structure(list(
cols = list(X1 = structure(list(),`5310` = structure(list(),`9120` = structure(list(),class = "col_spec"))
解决方法
你在追求这个吗?
> g1 <- graph_from_adjacency_matrix(as.matrix(df1[-1]),weighted = TRUE)
> g2 <- graph_from_adjacency_matrix(as.matrix(df2[-1]),weighted = TRUE)
> v <- c("3110","110")
> betweenness(g1,v)
3110 110
64 22
> betweenness(g2,v)
3110 110
31 7
更新
如果你想保存到单独的文件中,也许你可以试试
v <- c("3110","110")
g <- list(g1,g2)
for (i in seq_along(g)) {
write.csv(between(g[[i]],v),file = paste0("g_",i,".csv"))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。