根据 R 中的匹配顶点类型定义边标签

Define Edge labels based on matching vertex type in R

我有一个图 net 有两种不同类型(1 和 2)的顶点,分别出现 n1 和 n2 次:

net %v% "type" <- c(rep("1", n1), rep("2", n2))

我们有一些随机生成的边,概率为 ps 和 pd,其中 ps 是具有相同类型(1-1 或 2-2)和 pd 的边概率不同类型 (1-2).

我想绘制此图,使相同类型(即 1-1 或 2-2)之间的边与不同类型(1-2)之间的边具有不同的颜色。

我该怎么做? 我尝试使用网络包的 %e% 运算符,但我对如何获取每条边的末端节点的类型感到困惑。 谢谢!

你想要吗?

from <- sample(1:2, 10, replace = T)
to <- sample(1:2, 10, replace = T)
node <- cbind(from, to)
library(igraph)
net <- graph_from_edgelist(node, directed = F)
edge_color <- function(from_to){
  from_node <- from_to[1]
  to_node <- from_to[2]
  ifelse(from_node == to_node, return("red"), return("blue"))
}
color<- apply(node, 1, edge_color)
plot(net, edge.color=color)