Description Usage Arguments Details Value Author(s) References See Also Examples
Various operators which allow extraction or replacement of various components of a network
object.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ## S3 method for class 'network'
x[i, j, na.omit = FALSE]
## S3 replacement method for class 'network'
x[i, j, names.eval=NULL, add.edges=FALSE] <- value
x %e% attrname
x %e% attrname <- value
x %eattr% attrname
x %eattr% attrname <- value
x %n% attrname
x %n% attrname <- value
x %nattr% attrname
x %nattr% attrname <- value
x %v% attrname
x %v% attrname <- value
x %vattr% attrname
x %vattr% attrname <- value
|
x |
an object of class |
i, j |
indices of the vertices with respect to which adjacency is to be tested. Empty values indicate that all vertices should be employed (see below). |
na.omit |
logical; should missing edges be omitted (treated as no-adjacency), or should |
names.eval |
optionally, the name of an edge attribute to use for assigning edge values. |
add.edges |
logical; should new edges be added to |
value |
the value (or set thereof) to be assigned to the selected element of |
attrname |
the name of a network or vertex attribute (as appropriate). |
Indexing for edge extraction operates in a manner analogous to matrix
objects. Thus, x[,]
selects all vertex pairs, x[1,-5]
selects the pairing of vertex 1 with all vertices except for 5, etc. Following this, it is acceptable for i
and/or j
to be logical vectors indicating which vertices are to be included. During assignment, an attempt is made to match the elements of value
to the extracted pairs in an intelligent way; in particular, elements of value
will be replicated if too few are supplied (allowing expressions like x[1,]<-1
). Where names.eval==NULL
, zero and non-zero values are taken to indicate the presence of absence of edges. x[2,4]<-6
thus adds a single (2,4) edge to x
, and x[2,4]<-0
removes such an edge (if present). If x
is multiplex, assigning 0 to a vertex pair will eliminate all edges on that pair. Pairs are taken to be directed where is.directed(x)==TRUE
, and undirected where is.directed(x)==FALSE
.
If an edge attribute is specified using names.eval
, then the provided values will be assigned to that attribute. When assigning values, only extant edges are employed (unless add.edges==TRUE
); in the latter case, any non-zero assignment results in the addition of an edge where currently absent. If the attribute specified is not present on a given edge, it is added. Otherwise, any existing value is overwritten. The %e%
operator can also be used to extract/assign edge values; in those roles, it is respectively equivalent to get.edge.value(x,attrname)
and set.edge.value(x,attrname=attrname,value=value)
. Note that the assignment operator takes edge values input in adjacency matrix form.
The %n%
and %v%
operators serve as front-ends to the network and vertex extraction/assignment functions (respectively). In the extraction case, x %n% attrname
is equivalent to get.network.attribute(x,attrname)
, with x %v% attrname
corresponding to get.vertex.attribute(x,attrname)
. In assignment, the respective equivalences are to set.network.attribute(x,attrname,value)
and set.vertex.attribute(x,attrname,value)
. Note that the “%%” assignment forms are generally slower than the named versions of the functions beause they will trigger an additional internal copy of the network object.
The %eattr%
, %nattr%
, and %vattr%
operators are equivalent to %e%
, %n%
, and %v%
(respectively). The short forms are more succinct, but may produce less readable code.
The extracted data, or none.
Carter T. Butts buttsc@uci.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/
is.adjacent
, as.sociomatrix
, attribute.methods
, add.edges
, network.operators
, and get.inducedSubgraph
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #Create a random graph (inefficiently)
g<-network.initialize(10)
g[,]<-matrix(rbinom(100,1,0.1),10,10)
plot(g)
#Demonstrate edge addition/deletion
g[,]<-0
g[1,]<-1
g[2:3,6:7]<-1
g[,]
#Set edge values
g[,,names.eval="boo"]<-5
as.sociomatrix(g,"boo")
g %e% "hoo" <- "wah"
g %e% "hoo"
#Assignment input should be as adjacency matrix
g %e% "age" <- matrix(1:100, 10, 10)
g %e% "age"
as.sociomatrix(g,"age")
#Set/retrieve network and vertex attributes
g %n% "blah" <- "Pork!" #The other white meat?
g %n% "blah" == "Pork!" #TRUE!
g %v% "foo" <- letters[10:1] #Letter the vertices
g %v% "foo" == letters[10:1] #All TRUE
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.