我有以下问题:
我有以下图表:g6
,其中不包含isolate vertices
。顶点主要分为两个ethnic groups
,作为属性给出,即:mestizo and saraguro
所以我为saraguros运行subgraph
选项如下:
g2saraguro< - 子图(g6,其中(V(g6)$ ethnic ==“saraguro”))
摘要(g2saraguro)
确实有效:
顶点:166
边缘:330
指导:TRUE
没有图表属性。
顶点属性:ii,村庄,parroquia,canton,provinz,kindR,种族,情况,研究。
边缘属性:问题,活动。
但是,如果我对mestizo
尝试相同的操作,则存在问题,因为它只是识别:
s2mestizo< - subgraph(g6,V(g6)$ ethnic ==“mestizo”)
摘要(s2mestizo)
顶点:2
边缘:3
指导:TRUE
没有图表属性。
顶点属性:ii,村庄,parroquia,canton,provinz,kindR,种族,情况,研究。
边缘属性:问题,活动。
但实际情况并非如此,如果我看到:V(g6)$ethnic
,mestizo
占多数!!
我真的不知道问题出在哪里,igraph 0.6
subgraph
形成1-based indexing
的过程应采用相同或相似的方式,而不是{{1}}。
非常感谢任何帮助
至于
弗拉基米尔
答案 0 :(得分:3)
您忘记在第二种情况下使用which
功能;即,而不是
s2mestizo <- subgraph(g6,V(g6)$ethnic=="mestizo")
你应该写
s2mestizo <- subgraph(g6, which(V(g6)$ethnic=="mestizo"))
另请注意,如果您使用的是igraph 0.5.x或更早版本,则必须从which
的结果中减去1,因为igraph的基于0的索引。这已在igraph 0.6中修复,因此如果您使用的是igraph 0.6或更高版本,则无需减去1。
修改:根据您最近的评论,看起来您正在使用igraph 0.5.x或更早版本(因为summary
的输出格式与0.6不同)。在这种情况下,必须从which
的结果中减去1,因为igraph 0.5.x及更早版本使用从零开始的顶点索引。因此,正确的行应该是:
s2mestizo <- subgraph(g6, which(V(g6)$ethnic=="mestizo")-1)