我正在使用igraph,我想使用mark.groups
函数来指定网络中的某些组。该函数要求使用数字节点标识符矢量(例如mark.groups = c(1,5,7)
)指定组。
我有一个组列表,并以数据框格式关联:
groups
Group_ID Node_ID
1 1
1 2
1 3
2 4
2 5
我没有在mark.groups函数中手动键入这些内容,而是将数据框拆分为子数据框列表:
members <- groups %>%
group_split(Group_ID, keep = FALSE)
然后我在绘制图表时尝试参考这些元素。这段代码有效:
plot(net,
mark.groups = c(members[[1]], members[[2]])
)
但是我希望能够引用所有拆分元素,而不必单独键入每个元素。我已经尝试过了,但是会引发Error in members[[1]]:members[[2]] : NA/NaN argument
错误:
plot(net,
mark.groups = c(members[[1]]:members[[2]])
)
我认为可以使用以下方法创建元素名称列表:
mem_count <- length(members)
mem_list <- paste("members[[", 1:mem_count[1], "]],", sep = "")
,然后在plot()
函数中引用它们:
plot(net,
mark.groups = memlist
)
但这似乎也不起作用,给出此错误Error in simple_vs_index(x, ii, na_ok) : Unknown vertex selected
。
任何想法都值得赞赏。