如果您从 R 中使用 igraph,请使用此选项
bipartite_projection {igraph} | R 文档 |
将二分图投影成两个单模网络
bipartite_projection(
graph,
types = NULL,
multiplicity = TRUE,
probe1 = NULL,
which = c("both", "true", "false"),
remove.type = TRUE
)
图 |
输入图。它可以是有向图,但在计算过程中会忽略边的方向。 |
types |
一个可选的顶点类型向量,用于代替 ' |
multiplicity |
如果为 |
probe1 |
此参数可用于指定结果列表中投影的顺序。如果给定,则将其视为顶点 ID(或符号顶点名称);包含此顶点的投影将是结果列表中的第一个。如果参数 |
which |
一个字符标量,用于指定要计算的投影。默认是计算两者。 |
remove.type |
逻辑标量,是否从投影中删除 |
二分图在 igraph 中具有 type
顶点属性,这是一个布尔值,对于第一种顶点为 FALSE
,对于第二种顶点为 TRUE
。
bipartite_projection_size
计算二分图的两个投影中的顶点和边的数量,而不计算投影本身。 如果您有一个大型二分图,这有助于检查投影需要多少内存。
bipartite_projection
计算实际的投影。 您可以使用 probe1
参数来指定结果中投影的顺序。 默认情况下,顶点类型 FALSE
是第一个,TRUE
是第二个。
bipartite_projection
保留顶点属性。
两个无向图的列表。 请参阅上面的详细信息。
Gabor Csardi csardi.gabor@gmail.com
## Projection of a full bipartite graph is a full graph
g <- make_full_bipartite_graph(10,5)
proj <- bipartite_projection(g)
graph.isomorphic(proj[[1]], make_full_graph(10))
graph.isomorphic(proj[[2]], make_full_graph(5))
## The projection keeps the vertex attributes
M <- matrix(0, nrow=5, ncol=3)
rownames(M) <- c("Alice", "Bob", "Cecil", "Dan", "Ethel")
colnames(M) <- c("Party", "Skiing", "Badminton")
M[] <- sample(0:1, length(M), replace=TRUE)
M
g2 <- graph_from_incidence_matrix(M)
g2$name <- "Event network"
proj2 <- bipartite_projection(g2)
print(proj2[[1]], g=TRUE, e=TRUE)
print(proj2[[2]], g=TRUE, e=TRUE)