Hi,
I have been playing around with igraph lately and think that it is a great package as it adds tremendous functionality to R. However, I continually get into trouble with basic edge and vertex operations, especially, adding and removing edges. I have added some examples of confusion at the end of this mail and attached the code.
I think that there is a certain lack of consistency in how they operate, to the degree that I would consider it a bug. Maybe I'm just wrong in expecting that the examples given below should
work in some consistent way. However, it makes it extremely difficult to
decide whether a certain way to operate on some elements of a graph
(e.g. get all edges via E(G) or get.edges(G,...)) will work for a
certain problem or not (e.g. add them to a graph via + or add.edges,
...) when writing code. A major problem that I see is that it is essentially unclear how to write iterators over the nodes or edges of an igraph object (without resorting to exporting to other classes (eg via get.edgelist)).
Best,