which.matrix.type attempts to choose an appropriate matrix expression for a network object, or (if its argument is a matrix) attempts to determine whether the matrix is of type adjacency, incidence, or edgelist.

which.matrix.type(x)

Arguments

x

a matrix, or an object of class network

Value

One of "adjacency", "incidence", or "edgelist"

Details

The heuristics used to determine matrix types are fairly arbitrary, and should be avoided where possible. This function is intended to provide a modestly intelligent fallback option when explicit identification by the user is not possible.

References

Butts, C. T. (2008). “network: a Package for Managing Relational Data in R.” Journal of Statistical Software, 24(2). doi:10.18637/jss.v024.i02

Author

David Hunter dhunter@stat.psu.edu

Examples


  #Create an arbitrary adjacency matrix
  m<-matrix(rbinom(25,1,0.5),5,5)
  diag(m)<-0

  #Can we guess the type?
  which.matrix.type(m)
#> [1] "adjacency"

  #Try the same thing with a network
  g<-network(m)
  which.matrix.type(g)
#> [1] "adjacency"
  which.matrix.type(as.matrix.network(g,matrix.type="incidence"))
#> [1] "bipartite"
  which.matrix.type(as.matrix.network(g,matrix.type="edgelist"))
#> [1] "edgelist"