我正在使用iGraph绘制图表。我的矩阵A和B只有两列。我需要用2种颜色为节点着色 - 表示属于A的节点和属于B的节点。例如:
# k is a df with 2 columns – A and B
k_mx <- as.matrix(k)
k_mx_g <- graph.edgelist(k_mx, directed = FALSE)
V(k_mx_g)$color = ?? ( want blue for A and red for B)
请让我知道如何做到这一点。
谢谢, PD
答案 0 :(得分:3)
假设这个数据帧:
k <- structure(list(A = 1:4, B = 5:8),
.Names = c("A", "B"), row.names = c(NA, -4L),
class = "data.frame")
...您可以将rep
与each
参数一起使用。否则,由于参数回收,它们将依次用c标记(“蓝色”,“红色”,“蓝色”,“红色”,“蓝色”,“红色”,“蓝色”,“红色”):
V(k_mx_g)$color <- rep(c("blue", "red"), each=4)
Gabor的评论引导我提供这个选项,这似乎更为通用:
V(k_mx_g)[k$A]$color <- "blue"
V(k_mx_g)[k$B]$color <- "red"