我是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
这一定是关于igraphs最简单的事情 - 任何人都有一个非常快速的转向或修复 - 我想我使用的是错误的功能。
答案 0 :(得分:0)
as_incidence_matrix()仅适用于二分网络,您提供的示例不是一个。相反,您可以尝试使用intergraph函数将igraph对象转换为网络对象,并使用as.matrix函数将其转换为关联矩阵。试试这个,
library(intergraph)
library(network)
as.matrix(asNetwork(network),matrix.type="incidence")