Hi, Thanks for your work and support through this package.
I have a question about understanding the multiple edges and edge attributes.
In my Igraph object, I have multiple edges between some of the nodes.
is_simple(net_full)
# [1] TRUE
I have identified those instances using which_multiple(net_full). Now, I would like to understand how the edge.attribute values are coming from these edges individually.
Can you clarify the question please, perhaps with a self-contained minimal example?
These values do come from individual edges. None of these values are the combination of the “score” attribute of several parallel edges.
Each edge has a unique index. If there are two edges between the same pair of vertices, those two edges will have different indices. 1898 refers to a single edge, not a combination of two parallel edges.
This may not be the efficient way of doing this. Here is what I did (but, suggestions are welcome!)
The first few indices from the command c(1:11759454)[which_multiple(net_full)] result are c(1898, 5892, 6556, 6746, 7443, 8267, 8564), where the graph net_full contain 11759454 edges.
As I mentioned above, I looked into these indices. The command edge_attr(net_full, "score")[1898] resulted in 161. When I looked into count_multiple(net_full)[1898], it resulted in 2. I want to know how to find these 2.
When I looked into the get.edge.ids(net_full, c("N233", "N412")), it resulted only one edge id. Is it something as expected? If I understand clearly, your reply, there should be 2 edge ids, right?
Can you explain in more detail why you want to get all edge IDs for groups of parallel edges? I can imagine several possibilities, but I would like to know your actual motivation. Having some real-world use cases helps us decide on the best interface.
Yes, of course that makes sense, and we are discussing how to make improvements for future versions. I asked because the perspective of users is very valuable when making decisions about such issues.