【问题标题】:In R, how can I generate a subgraph from a igraph object based on multiple attribute scores?在 R 中,如何根据多个属性分数从 igraph 对象生成子图?
【发布时间】:2014-06-12 17:37:36
【问题描述】:

我有一个igraph 对象,它有 3000 个顶点和 4000 个边。顶点和边都包含属性。

其中一个顶点属性是city,并且对所有顶点都有一个有效的输入。

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

当我为一个城市这样做时,效果很好:

new_graph<-induced.subgraph(old_graph, which(V(old_graph$city=="LOS ANGELES")

但是,我确实想在new_graph 中加入另外 9 个城市。

我可以在这里简单地扩展我的which 参数吗?还是我应该写一个loop

有人有什么想法吗?任何帮助将不胜感激!

【问题讨论】:

  • 您可以使用old_graph$city %in% c("LOS ANGELES","BOSTON","KALAMAZOO") 指定更多城市。你问的是这个吗?
  • 再次感谢弗利克先生!如果我运行以下命令,它确实选择了洛杉矶和圣何塞的发明者。愚蠢,但我从没想过要像这样构建论点。再次感谢。 new_graph&lt;-induced.subgraph(old_graph, which(V(old_graph)$city %in% c("LOS ANGELES", "SAN JOSE")))

标签: r attributes social-networking igraph


【解决方案1】:

也许更具可读性,您可以避免使用which

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 2021-03-09
      • 2011-12-08
      • 2015-03-14
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多