基于 r 中的属性有条件地删除顶点



我正在使用具有 121 个顶点和 209 条边的图形,我正在尝试从该图中删除满足两个条件的顶点:

  1. degree(my.graph)==0
  2. 顶点的名称以指定的字符开头。

这是一个示例,显示了我想要获得的内容。从下图:

toy.graph <- graph.formula(121-221,121-345,121-587,345-587,221-587, 490, 588)

我想删除度数为 0 且以 5 开头的顶点。在这种情况下,我只想删除顶点 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])

它不起作用,我得到了完整的图表。是否有一种特殊的方法来组合多个条件来移除顶点?

谢谢!

我相信这就是你想要的:

delete.vertices(
  toy.graph, 
  V(toy.graph)[ degree(toy.graph) == 0 & grepl("^5", V(toy.graph)$name) ] 
)

波兹拉维亚姆:)

最新更新