由于ends(graph, es, names = TRUE)
函数(the description),我无法继续在下面编写代码。
我安装了igraph
库并且我从所有内容验证了但是结束功能一直给我一个错误。
> library(igraph)
> setwd("Desktop")
> file <- "distance"
> con <- file(description=file, open="r")
> line <- read.table(con)
> data<-as.data.frame(line)
> df <- graph.data.frame(d = data, directed = FALSE) #to convert data to a graph object
> edge<-sample(E(df),1) # sample an edge randomly
> edge
Edge sequence:
e
e [16567] 5578 -- 6774
> ends(graph = g, es = 'e')[2] #get the second vertex for edge e
Error in ends(graph = g, es = "e") : could not find function "ends"
文件“距离”包含数据,它是一组以两列排序的边,每行是一条边,列中的每个值都代表一个顶点:
1 2
2 3
3 4
所以1 2
是顶点1和顶点之间的边缘。 2。
我希望这个函数能够得到一个随机选择的边缘的入射顶点,我搜索了interent和R库但是我找不到类似的函数或者其他东西做同样的事情,这让我可以从中选择一个特定的顶点边缘,这是一个类似的问题link,但建议的解决方案是使用ends()
。
请您告诉我为什么我无法使用此功能或为同一目的提出其他功能。 非常感谢提前
修改
似乎问题是igraph的版本!!此版本中未定义ends(graph,..)
。
我现在的问题, 因为升级igraph版本是不可能的,还有其他功能可以从边缘选择某个顶点吗? 感谢
答案 0 :(得分:0)
只是为了帮助谁将面临同样的问题..
我的目标是通过顶点读取边缘,以便我可以调用边缘中的任何顶点,因此我通过添加以下行将数据从igraph
对象转换为edgelist
edges<-get.edgelist(df)
v1<-edges[edge,1]
v2<-edges[edge,2]
edge
Edge sequence:
e
e [8839] 1149 -- 1425
v1
[1] "1425"
v2
[1] "1149"
这不是一个很好的解决方案,但它解决了我的问题所以也许它可以帮助像我这样的其他初学者