【问题标题】:graph.adjacency returns adjecent vertices errorgraph.adjacency 返回相邻顶点错误
【发布时间】:2019-03-28 20:10:45
【问题描述】:

我正在尝试从邻接矩阵创建图形:

        mari
femme      InghiP IngtiP TerangP TeronP TimungP UnknownP
  InghiP      219     75     159    108     173        3
  IngtiP       91     39      69     50      76        0
  TerangP     139     55     100     81     122        0
  TeronP      126     40      82     68      82        0
  TimungP     167     74     121    116     128        2
  UnknownP      4      1       1      3       6        0

> dput(malliances)
structure(c(200L, 107L, 147L, 109L, 179L, 4L, 86L, 30L, 45L, 
48L, 74L, 1L, 164L, 51L, 107L, 90L, 119L, 1L, 124L, 46L, 79L, 
69L, 106L, 2L, 162L, 91L, 118L, 81L, 129L, 6L, 1L, 0L, 1L, 1L, 
1L, 1L), .Dim = c(6L, 6L), .Dimnames = structure(list(femme = c("InghiP", 
"IngtiP", "TerangP", "TeronP", "TimungP", "UnknownP"), mari = c("InghiP", 
"IngtiP", "TerangP", "TeronP", "TimungP", "UnknownP")), .Names = c("femme", 
"mari")))

net<-graph.adjacency(malliances, mode="directed",weighted=TRUE,diag=TRUE)

乍一看,结果似乎还可以:

> net
IGRAPH a24d0ed DNW- 6 32 -- 
+ attr: name (v/c), weight (e/n)
+ edges from a24d0ed (vertex names):
 [1] InghiP  ->InghiP   InghiP  ->IngtiP   InghiP  ->TerangP  InghiP  ->TeronP   InghiP  ->TimungP...................

但是,str(net) 或 view(net) 返回以下错误,我无法绘制任何内容:

Error in adjacent_vertices(x, i, mode = if (directed) "out" else "all") : 
  At iterators.c:759 : Cannot create iterator, invalid vertex id, Invalid vertex id

感谢您的帮助

【问题讨论】:

  • malliances的结构不清楚。您能否在您的问题中包含dput(malliances) 的输出,以便我们可以看到您的确切结构。另外,您使用的是哪个版本的 igraph? graph.adjacency 已替换为函数graph_from_adjacency_matrix
  • 感谢 G5W。添加输入

标签: r igraph adjacency-matrix


【解决方案1】:

对我来说plot(net) 确实有效。至于strView,见?str.igraph

从 igraph 1.1.1 开始,str.igraph 函数已失效,请使用 print_all()。

print_all(net)
# IGRAPH 6d9db93 DNW- 6 35 -- 
# + attr: name (v/c), weight (e/n)
# + edges (vertex names):
# InghiP -> InghiP, IngtiP, TerangP, TeronP, TimungP, UnknownP
# IngtiP -> InghiP, IngtiP, TerangP, TeronP, TimungP
# TerangP -> InghiP, IngtiP, TerangP, TeronP, TimungP, UnknownP
# TeronP -> InghiP, IngtiP, TerangP, TeronP, TimungP, UnknownP
# TimungP -> InghiP, IngtiP, TerangP, TeronP, TimungP, UnknownP
# UnknownP -> InghiP, IngtiP, TerangP, TeronP, TimungP, UnknownP

【讨论】:

  • 感谢您的回复。对我来说, plot(net) 只显示五个循环,没有顶点和其他边。
  • @PhilippeRamirez,你的igraph 是什么版本?
  • 我的 igraph 版本是 1.2.1
  • 听起来不错,但您可以尝试更新到 1.2.2。此外,请确保使用igraph:::plot.igraph(net) 在干净的 R 会话中运行您的精确可重现示例。还是只有循环?
  • 尝试在 Rstudio 中更新 igraph 时似乎存在错误。但最后,我不知道为什么,但它有效。谢谢朱利叶斯。
猜你喜欢
  • 2020-07-30
  • 2022-01-22
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
相关资源
最近更新 更多