Heuristic Determination of Matrix Types for Network Storage
which.matrix.type.Rdwhich.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.
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"