【问题标题】:iGraph incidence matrixiGraph 关联矩阵
【发布时间】:2016-02-07 12:50:34
【问题描述】:

我是 iGraphs 的新手 - 尝试绘制关联矩阵(每个节点和每条边的矩阵以及 1;s、0 和 -1 来指示边是否起源、不连接或终止于特定节点。

这是一个简单的数据框示例 - 5 个节点,10 个边,

r <- 5
borders <- data.frame(permutations(5,2))
borders <- borders[c(seq(1,nrow(borders), by = 2)),]
colnames(borders) <- c("head", "tail")
borders$cap <- rnorm(n = nrow(borders), mean = 5, sd = 2)
network <- graph.data.frame(borders) 
plot(network)
as_incidence_matrix(network)

结果如下:

Error in as_incidence_matrix(network) : 
  Not a bipartite graph, supply `types' argument

这一定是关于 igraph 最简单的事情 - 任何人都有非常快速的指导或修复 - 我想我使用了错误的功能。

【问题讨论】:

    标签: r networking igraph


    【解决方案1】:

    as_incidence_matrix() 仅适用于二分网络,您提供的示例不是一个。相反,您可以尝试使用 intergraph 函数将 igraph 对象转换为网络对象,并使用 as.matrix 函数将其转换为关联矩阵。试试这个,

    library(intergraph)
    library(network)
    as.matrix(asNetwork(network),matrix.type="incidence")
    

    【讨论】: