| as.matrix.network {network} | R Documentation |
The as.matrix methods attempt to coerce their input to a matrix in adjacency, incidence, or edgelist form. Edge values (from a stored attribute) may be used if present. as_tibble coerces into an edgelist in tibble (a type of data.frame) form; this can be especially useful if extrecting a character-type edge attribute.
## S3 method for class 'network'
as.matrix(x, matrix.type = NULL, attrname = NULL, ...)
## S3 method for class 'adjacency'
as.matrix.network(x, attrname=NULL,
expand.bipartite = FALSE, ...)
## S3 method for class 'edgelist'
as.matrix.network(x, attrname=NULL,
as.sna.edgelist = FALSE, na.rm = TRUE, ...)
## S3 method for class 'incidence'
as.matrix.network(x, attrname=NULL, ...)
## S3 method for class 'network'
as_tibble(x, attrnames = (match.arg(unit)=="vertices"), na.rm = TRUE, ...,
unit=c("edges","vertices"))
## S3 method for class 'network'
as.tibble(x, attrnames = (match.arg(unit)=="vertices"), na.rm = TRUE, ...,
unit=c("edges","vertices"))
x |
an object of class |
matrix.type |
one of |
attrname |
optionally, the name of an edge attribute to use for edge values |
attrnames |
optionally, either a character vector of the names
of edge attributes to use for edge values, or a numerical or logical
vector to use as indices for selecting them from
|
expand.bipartite |
logical; if |
as.sna.edgelist |
logical; should the edgelist be returned in sna edglist form? |
na.rm |
logical; should missing edges/vertices be included in the
edgelist formats? Ignored if |
unit |
whether a |
... |
additional arguments. |
If no matrix type is specified, which.matrix.type will be used to make an educated guess based on the shape of x. Where edge values are not specified, a dichotomous matrix will be assumed.
Edgelists returned by the as.matrix methods are by default in a slightly different form from the sna edgelist standard, but do contain the sna extended matrix attributes (see as.network.matrix). They should typically be compatible with sna library functions. To ensure compatibility, the as.sna.edgelist argument can be set (which returns an exact sna edgelist). The as.edgelist function also returns a similar edgelist matrix but with an enforced sorting.
For the as.matrix methods, if the attrname attribute is used to include a charcter attribute, the resulting edgelist matrix will be character rather than numeric. The as_tibble methods never coerce.
Note that adjacency matrices may also be obtained using the extraction operator. See the relevant man page for details. Also note that which attributes get returned by the as_tibble method by default depends on unit: by default no edge attributes are returned but all vertex attributes are.
For as.matrix methods, an adjacency, incidence, or edgelist matrix. For the as_tibble method, a tibble whose first two columns are .head and .tail, whose third column .eid is the edge ID, and whose subsequent columns are the requested edge attributes.
Carter T. Butts buttsc@uci.edu and David Hunter dhunter@stat.psu.edu
Butts, C. T. (2008). “network: a Package for Managing Relational Data in R.” Journal of Statistical Software, 24(2). http://www.jstatsoft.org/v24/i02/
which.matrix.type, network, network.extraction,as.edgelist
# Create a random network
m <- matrix(rbinom(25,4,0.159),5,5) # 50% density
diag(m) <- 0
g <- network(m, ignore.eval=FALSE, names.eval="a") # With values
g %e% "ac" <- letters[g %e% "a"]
# Coerce to matrix form
# No attributes:
as.matrix(g,matrix.type="adjacency")
as.matrix(g,matrix.type="incidence")
as.matrix(g,matrix.type="edgelist")
# Attributes:
as.matrix(g,matrix.type="adjacency",attrname="a")
as.matrix(g,matrix.type="incidence",attrname="a")
as.matrix(g,matrix.type="edgelist",attrname="a")
as.matrix(g,matrix.type="edgelist",attrname="ac")
# Coerce to a tibble:
library(tibble)
as_tibble(g)
as_tibble(g, attrnames=c("a","ac"))
as_tibble(g, attrnames=TRUE)
# Get vertex attributes instead:
as_tibble(g, unit = "vertices")
# Missing data handling:
g[1,2] <- NA
as.matrix(g,matrix.type="adjacency") # NA in the corresponding cell
as.matrix(g,matrix.type="edgelist", na.rm=TRUE) # (1,2) excluded
as.matrix(g,matrix.type="edgelist", na.rm=FALSE) # (1,2) included
as_tibble(g, attrnames="na", na.rm=FALSE) # Which edges are marked missing?
# Can also use the extraction operator
g[,] # Get entire adjacency matrix
g[1:2,3:5] # Obtain a submatrix