prod.network {network} | R Documentation |
Combine Networks by Edge Value Multiplication
Description
Given a series of networks, prod.network
attempts to form a new
network by multiplication of edges. If a non-null attrname
is given,
the corresponding edge attribute is used to determine and store edge values.
Usage
## S3 method for class 'network'
prod(..., attrname = NULL, na.rm = FALSE)
Arguments
... |
one or more |
attrname |
the name of an edge attribute to use when assessing edge values, if desired. |
na.rm |
logical; should edges with missing data be ignored? |
Details
The network product method attempts to combine its arguments by edgewise
multiplication (not composition) of their respective adjacency
matrices; thus, this method is only applicable for networks whose adjacency
coercion is well-behaved. Multiplication is effectively boolean unless
attrname
is specified, in which case this is used to assess edge
values – net values of 0 will result in removal of the underlying edge.
Other network attributes in the return value are carried over from the first element in the list, so some persistence is possible (unlike the multiplication operator). Note that it is sometimes possible to “multiply” networks and raw adjacency matrices using this routine (if all dimensions are correct), but more exotic combinations may result in regrettably exciting behavior.
Value
A network
object.
Author(s)
Carter T. Butts buttsc@uci.edu
References
Butts, C. T. (2008). “network: a Package for Managing Relational Data in R.” Journal of Statistical Software, 24(2). https://www.jstatsoft.org/v24/i02/
See Also
Examples
#Create some networks
g<-network.initialize(5)
h<-network.initialize(5)
i<-network.initialize(5)
g[1:3,,names.eval="marsupial",add.edges=TRUE]<-1
h[1:2,,names.eval="marsupial",add.edges=TRUE]<-2
i[1,,names.eval="marsupial",add.edges=TRUE]<-3
#Combine by addition
pouch<-prod(g,h,i,attrname="marsupial")
pouch[,] #Edge values in the pouch?
as.sociomatrix(pouch,attrname="marsupial") #Recover the marsupial