【问题标题】:network diagram from binary matrix R来自二进制矩阵 R 的网络图
【发布时间】:2014-08-14 15:27:58
【问题描述】:

我有以下二进制矩阵,显示每个关键字出现在哪篇文章中。

        keyword1  keyword2  keyword3
  art1    0          1        0
  art2    1          1        0
  art3    0          0        1

我尝试了以下技术来创建邻接矩阵,但我不确定它是否正确以及值的含义

  df1 <- data.frame(keyword1=c(0,1,0),keyword2=c(1,1,0),keyword3=c(0,0,1),row.names=c("art1","art2","art3"))
  df1.mt <- as.matrix(df1)
  df1.adj <- t(df1.mt) %*% df1.mt

此时我已经创建了以下邻接矩阵

          keyword1  keyword2  keyword3
  keyword1   1         1        0
  keyword2   1         2        0
  keyword3   0         0        1

这是一个邻接矩阵吗? 它是否通过文章显示关键字之间的关系? 我可以用它来画网络图吗?请问如何?

感谢您的帮助。

【问题讨论】:

    标签: r matrix correlation adjacency-matrix


    【解决方案1】:

    如果您不熟悉 igraph 包,它是一个可以轻松完成此类任务的网络包:

    library(igraph)
    g <- graph.adjacency(df1.adj)
    plot(g)
    

    第一个矩阵是一个布尔矩阵。您所做的转换是邻接矩阵,对角线是关键字显示的总次数。非对角线是两个关键字(节点)之间的链接(边)。这些边缘也可以加权。

    这给出了:

    您还可以将对角线设置为零以避免边缘是循环:

    diag(df1.adj) <- 0
    g <- graph.adjacency(df1.adj)
    plot(g)
    

    屈服:

    【讨论】:

    • 谢谢你这是一个很好的答案,我不知道诊断。
    猜你喜欢
    • 2020-10-22
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多