R中基于属性的顶点有条件移除

yqkkidmi  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(98)

我正在处理一个有121个顶点和209条边的图,我试图从这个图中删除满足两个条件的顶点:

  1. degree(my.graph)==0
    1.顶点的名称以指定字符开始。
    这里有一个例子,说明我想得到什么。从下图可以看出:
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])


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

cdmah0mi

cdmah0mi1#

我相信这就是你想要的:

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

字符串
pozdrawiam:)

相关问题