在R中,如何根据多个属性分数从igraph对象生成子图?

wak*_*ake 4 attributes r social-networking igraph

我有一个igraph具有3000个顶点和4000个边的对象.顶点和边都有属性.

其中一个顶点属性是city并且具有所有顶点的有效输入.

我想选择居住在十大最常见城市中的所有顶点,并为这些顶点创建一个新图形.我知道这十大城市是什么.

当我为一个城市这样做时,它工作正常:

new_graph<-induced.subgraph(old_graph, which(V(old_graph$city=="LOS ANGELES")
Run Code Online (Sandbox Code Playgroud)

但是,我确实希望将9个城市纳入其中new_graph.

我可以简单地说明我的which论点吗?或者我应该写一个loop

有没有人有想法?任何帮助将不胜感激!

Gab*_*rdi 7

也许更具可读性,你可以避免which:

new_graph <- induced.subgraph(old_graph, 
  V(old_graph)[ city %in% c("LOS ANGELES", "BOSTON", "KALAMAZOO") ])
Run Code Online (Sandbox Code Playgroud)


MrF*_*ick 6

您可以使用%in%运算符匹配列表中的任何值,而不是测试相等性.只是用

new_graph<-induced.subgraph(old_graph, 
  which(V(old_graph)$city %in% c("LOS ANGELES","BOSTON","KALAMAZOO")))
Run Code Online (Sandbox Code Playgroud)