is.multiple {igraph} | R Documentation

## Find the multiple or loop edges in a graph

### Description

A loop edge is an edge from a vertex to itself. An edge is a multiple edge if it has exactly the same head and tail vertices as another edge. A graph without multiple and loop edges is called a simple graph.

### Usage

    is.loop(graph, eids=E(graph))
    is.multiple(graph, eids=E(graph))
    count.multiple(graph, eids=E(graph))

### Arguments

`graph` | The input graph.
`eids` | The edges to which the query is restricted. By default this is all edges in the graph.

### Details

Note that the semantics for `is.multiple` and `count.multiple` is different. `is.multiple` gives `TRUE` for all occurences of a multiple edge except for one. Ie. if there are three `i-j` edges in the graph then `is.multiple` returns `TRUE` for only two of them while `count.multiple` returns ‘3’ for all three.

See the examples for getting rid of multiple edges while keeping their original multiplicity as an edge attribute.

### Value

`is.loop` and `is.multiple` return a logical vector. `count.multiple` returns a numeric vector.

### Author(s)

Gabor Csardi csardi@rmki.kfki.hu

### See Also

`simplify` to eliminate loop and multiple edges.

### Examples

    # Loops
    g <- graph( c(0,0,1,1,2,2,3,4) )
    is.loop(g)

    # Multiple edges
    g <- barabasi.game(10, m=3)
    is.multiple(g)
    count.multiple(g)
    is.multiple(simplify(g))
    all(count.multiple(simplify(g)) == 1)

    # Direction of the edge is important
    is.multiple(graph( c(0,1, 1,0) ))
    is.multiple(graph( c(0,1, 1,0), dir=FALSE ))

    # Remove multiple edges but keep multiplicity
    g <- barabasi.game(10, m=3)
    E(g)$weight <- count.multiple(g)
    g <- simplify(g)
    any(is.multiple(g))
    E(g)$weight

[Package igraph version 0.5.2 Index]