【问题标题】:Igraph - Query if vertexes contained in graphIgraph - 查询图中是否包含顶点
【发布时间】:2018-05-14 05:10:46
【问题描述】:

我有一个图表:

df1[c("from", "to")]

df1 <- read.table(header=T, text=" from   to
8  1949 1967
10 3273 3395")

graph_bad_edges <- graph.data.frame(df1, directed=FALSE)

及其顶点列表:

bad_v <- V(graph_bad_edges)

bad_v
+ 4/4 vertices, named:
[1] 1949 3273 1967 3395

我有一个不同的图表:

df2 <- read.table(header=T, text=" from   to
1 1947 1948
2 1947 1949
3 1947 1967
4 1947 1968
5 1948 1949
6 1948 1967
7 1948 1968
8 1949 1968")

gg <- graph.data.frame(df2)

及其顶点列表:

new_v <- V(gg)

new_v
+ 5/5 vertices, named:
[1] 1947 1948 1949 1967 1968

我想查询图 2 中的顶点是否包含图 1 中的任何顶点。

我愿意:

bad_v %in% new_v
[1] TRUE TRUE TRUE TRUE

这显然是错误的。

我该如何做这个查询?

【问题讨论】:

  • bad_vnew_v的结构是什么?您编写%in% 命令的方式意味着它们是向量,我认为情况并非如此-另外,仅供参考,您的示例会引发错误
  • @Sotos 错误已修复。
  • 根据文档V(G)返回一个顶点序列。
  • 看我的回答...

标签: r dataframe graph igraph


【解决方案1】:

你需要提取和比较bad_vnew_v的名字,即

names(bad_v) %in% names(new_v)
#[1]  TRUE FALSE  TRUE FALSE

【讨论】:

  • facepalm 我也刚刚读到$names。非常感谢。
猜你喜欢
  • 2021-05-18
  • 2012-12-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多