【问题标题】:Creating an igraph from weighted correlation matrix csv从加权相关矩阵 csv 创建 igraph
【发布时间】:2021-01-21 23:51:40
【问题描述】:

首先,我想说我对 R 完全陌生,我只是想完成这一项任务。 所以,我想做的是我想从加权矩阵创建一个网络图。我举了个例子:

CSV 是一个简单的相关矩阵,如下所示:

,A,B,C,D,E,F,G
A,1,0.9,0.64,0.43,0.38,0.33,0.33
B,0.9,1,0.64,0.33,0.43,0.38,0.38
C,0.64,0.64,1,0.59,0.69,0.64,0.64
D,0.43,0.33,0.59,1,0.28,0.23,0.28
E,0.38,0.43,0.69,0.28,1,0.95,0.9
F,0.33,0.38,0.64,0.23,0.95,1,0.9
G,0.33,0.38,0.64,0.28,0.9,0.9,1

我尝试自己绘制想要的结果并想出了这个:

为了更准确,我先画图,然后用尺子记下距离,计算出权重的公式并制作 CSV 表。

值越高,两点越接近。

但是,无论我做什么,我得到的最好结果是这样的:

这就是我试图完成它的方式,使用this 教程:

首先,我导入我的矩阵:

> matrix <- read.csv(file = 'test_dataset.csv')

但是在使用 head() 打印出矩阵之后,这已经以某种方式切断了矩阵的最后一行:

> head(matrix)
  ï..    A    B    C    D    E    F    G
1   A 1.00 0.90 0.64 0.43 0.38 0.33 0.33
2   B 0.90 1.00 0.64 0.33 0.43 0.38 0.38
3   C 0.64 0.64 1.00 0.59 0.69 0.64 0.64
4   D 0.43 0.33 0.59 1.00 0.28 0.23 0.28
5   E 0.38 0.43 0.69 0.28 1.00 0.95 0.90
6   F 0.33 0.38 0.64 0.23 0.95 1.00 0.90
> dim(matrix)
[1] 7 8

然后我继续删除第一列,使矩阵再次成为正方形...

> matrix <- data.matrix(matrix)[,-1]
> head(matrix)
        A    B    C    D    E    F    G
[1,] 1.00 0.90 0.64 0.43 0.38 0.33 0.33
[2,] 0.90 1.00 0.64 0.33 0.43 0.38 0.38
[3,] 0.64 0.64 1.00 0.59 0.69 0.64 0.64
[4,] 0.43 0.33 0.59 1.00 0.28 0.23 0.28
[5,] 0.38 0.43 0.69 0.28 1.00 0.95 0.90
[6,] 0.33 0.38 0.64 0.23 0.95 1.00 0.90
> dim(matrix)
[1] 7 7

然后我创建图表并尝试绘制它:

> network <- graph_from_adjacency_matrix(matrix, weighted=T, mode="undirected", diag=F)
> plot(network)

然后出现上面的结果……

所以,在花了最后几个小时在谷歌上搜索并尝试了更多的东西之后,这是我能到达的最接近的地方。

所以我请求你的帮助,非常感谢你!

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    这一切都很好。

    head() 仅打印出矩阵或数据框的前 6 行,如果您想查看所有这些行,请使用 print() 或仅使用矩阵变量的名称。

    graph_from_adjacency_matrix 如果值为非零,则在两个节点之间生成链接。这就是为什么您将每个节点都链接到其他每个节点的原因。

    要了解该教程的内容,您需要添加一行

    matrix[matrix<0.5] <- 0
    

    在创建图表之前删除低于截断的相关边。

    它仍然不会生成像您手绘的图表那样的图表(其中接近度大致是相关性),如果它们的相关性高于 0.5,只需将它们聚集在一起。

    【讨论】:

    • 感谢您的回答!但是,您知道如何处理亲密关系吗?或者有没有其他图书馆可以做到这一点?谢谢!
    • 我怀疑通常可以绘制像二维这样的相关矩阵。也许有一些软件包可以尝试,但我会像你一样在谷歌上搜索。
    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    相关资源
    最近更新 更多