r - 防止 R igraph 添加零顶点

标签 r igraph

我正在使用以下代码创建图表:

g <- graph(c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2))

我想知道如何创建此图表,而不必执行以下额外步骤:

delete.vertices(g, 0)

图函数似乎默认为零索引顶点,因此图中存在未与任何其他顶点连接的顶点 0。我可以使用 V(g) 或简单的summary(g) 来验证这一点,它显示 id 从 0 到 5 的 6 个顶点。

最佳答案

我从 r-forge 站点访问的文档说:“顶点和边在 igraph 中具有数字顶点 id。顶点 id 始终是连续的,并且从零开始。”因此,在将向量发送到图形函数之前,您需要从该向量中减去 1。否则,您最终会得到一个未连接的“0”顶点。避免未连接的“0”顶点的一般方法是从向量中减去最小值。

> g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
> g
Vertices: 5 
Edges: 8 
Directed: TRUE 
Edges:

[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> g2 <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) )
> g2 <- delete.vertices(g2, 0)
> g2
Vertices: 5 
Edges: 8 
Directed: TRUE 
Edges:

[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> all.equal(g,g2)
[1] TRUE

所以我怀疑你的问题可能真的是“如何使用我自己的规则来标记顶点?”。试试这个:

g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
plot(g, vertex.label=1:5)

文档的开头部分还说:

The igraph homepage is at http://igraph.sourceforge.net. See especially the documentation section. Join the igraph-help mailing list if you have questions or comments.

关于r - 防止 R igraph 添加零顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293605/

相关文章:

r - 如何使用R中的igraph从有向子树中获取所有叶节点?

python - 使用 iGraph 定位边缘标签

r - 将字符串转换为符号,然后转换为 !! 识别的 quosure在整洁的宇宙中

R,删除重复值和原始值

r - 在dplyr中按组查找最接近x的值

r - 如何重新排列 igraph 图中边的顺序?

r - 如何计算点之间的最近距离?

r - 在 R/igraph 中可视化具有 3 层(三方)的图/网络

r - R 中的 k 均值返回值

r - R 中硬编码值的数字匹配/提取