Hi David, please read http://igraph.sourceforge.net/doc/R/graph.structure.html
To test if an edge exists, use graph[v, w]. graph[v, w, edges=TRUE] returns the edge id. Btw. to sum up all weights, it is easier to say sum(E(graph)$weight) than iterating over all vertex pairs.... G. On Thu, Jan 9, 2014 at 9:35 AM, David Robinson <[email protected]>wrote: > This is related to my previous question about combining vertex attributes > (thanks Tamas for the insight in figuring that out), but relates to > operations on edges. > > I have an undirected graph gA, with no loops and no multiple edges. Each > edge of the graph has a vector of attributes, e.g. E(gA)$weight . I would > like to be able to find the attributes of the edge that connects two > specific vertices. Something similar would happen in the following very > simplified R code snippet: > > sum<-0 > for (i in 1:vcount(gA) { > for (j in 1: vcount(gA) { > sum <- sum+ E(gA)[from(i) & to(j)]$weight > } > } > > A couple of issues arise: Ideally, I would like to only do this when an > edge exists between i and j exist, but I cannot seem to find a logic > statement that returns either TRUE/FALSE. The second issue occurs when i=j > where the result of E(gA)[from(i) & to(j)] is multiple values. > > I think that the problem boils down to the question: given two vertices, > can I determine if an edge exists between them and, if so, what is the > index of the edge between them? > > Thanks again for all the help, > David > - > > > _______________________________________________ > igraph-help mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/igraph-help > >
_______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
