繁体   English   中英

来自二进制矩阵R的网络图

[英]network diagram from binary matrix R

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

        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

这是邻接矩阵吗? 它显示文章中关键字之间的关系吗? 我可以用它来绘制网络图吗?

感谢您的帮助。

如果您不熟悉igraph程序包,则它是一个网络程序包,可轻松实现以下任务:

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

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

这给出:

在此处输入图片说明

您还可以将对角线设置为零,以避免出现循环边:

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

收益:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM