首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加一个节点并删除R in中指定的边缘

添加一个节点并删除R in中指定的边缘
EN

Stack Overflow用户
提问于 2014-04-20 01:00:26
回答 1查看 2.6K关注 0票数 2

我正在学习R中的igraph,并有一个关于如何向图中添加一个节点并通过指定它的两个节点来删除一个边的问题。下面是我的代码,用来创建一个有4个节点和一些边的图。

代码语言:javascript
复制
g <- as.data.frame(cbind(matrix(c(1, 2, 1, 3, 1, 4, 3, 4, 2, 4), byrow = TRUE, ncol = 2), c(5.6, 2.7, 3.5, 1.8, 2.1)))
names(g) <- c("start", "end", "length")
g <- graph.data.frame(g, directed = FALSE)
plot(g)

这里,length表示边缘的属性(边缘的长度)。我想在图中添加一个节点5。这个节点介于1到2之间,现在边缘1-2的长度是5.6.节点5与节点1的距离为2.6,与节点2的距离为3.0,我想添加这两个边(1-5和2-5)。我还需要删除1-2边,告诉R删除节点1和节点2之间的边。

做这件事的简单方法是什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-20 02:30:44

类似于:

代码语言:javascript
复制
library(igraph)

g <- as.data.frame(cbind(matrix(c(1, 2, 1, 3, 1, 4, 3, 4, 2, 4), 
                                byrow = TRUE, ncol = 2),
                         c(5.6, 2.7, 3.5, 1.8, 2.1)))
names(g) <- c("start", "end", "length")

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

# add node 5
g <- g + vertices(5)

# delete edge 1-2
g["1", "2"] <- NULL

# add new edges with length attribute
g <- g + edge("1", "5", attr=list(length=2.6))
g <- g + edge("2", "5", attr=list(length=1.3))

plot(g)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23177304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档