【发布时间】:2015-04-21 22:11:40
【问题描述】:
我正在处理一个有 121 个顶点和 209 个边的图,我试图从这个图中删除满足两个条件的顶点:
-
degree(my.graph)==0 - 顶点名称以指定字符开头。
这是一个显示我想要得到的示例。来自下图:
toy.graph <- graph.formula(121-221,121-345,121-587,345-587,221-587, 490, 588)
我想删除以 5 开头的度数为 0 的顶点。在这种情况下,我只想删除顶点 588(而不是 490 和 587)。我知道如何删除以 5 开头的顶点:
delete.vertices(toy.graph,V(toy.graph)$name
%in% grep("^5",V(toy.graph)$name,value=T))
以及如何移除度数为 0 的顶点:
delete.vertices(toy.graph, V(toy.graph)[degree(toy.graph)==0])
但是当我尝试将这两个条件放在一起时,那就是
delete.vertices(toy.graph, V(toy.graph)$name %in%
grep("^5",V(toy.graph)$name,value=T)
&& V(toy.graph)[degree(toy.graph)==0])
它不起作用,我取回了完整的图表。有没有特殊的方法可以组合多个条件去除顶点?
谢谢!
【问题讨论】:
-
使用
&,而不是&&。 (差异见?Logic帮助页面) -
我也想通了。我为 and 使用了错误的运算符。谢谢!
-
所以,当你只用
&而不是&&绘制它时,你会得到你想要的吗?对我来说,图中留下了 490,我认为你想去掉 490,因为它的度数为 0。 -
我只想删除同时满足这两个条件的那些节点,即 490 应该因为名称而保留。
&正是这样做的。