Various operators which allow extraction or replacement of various
components of a
## 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
an object of class
indices of the vertices with respect to which adjacency is to be tested. Empty values indicate that all vertices should be employed (see below).
logical; should missing edges be omitted (treated as
no-adjacency), or should
optionally, the name of an edge attribute to use for assigning edge values.
logical; should new edges be added to
the value (or set thereof) to be assigned to the selected
the name of a network or vertex attribute (as appropriate).
Indexing for edge extraction operates in a manner analogous to
x[,] selects all vertex pairs,
the pairing of vertex 1 with all vertices except for 5, etc. Following
this, it is acceptable for
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
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)
x[2,4]<-0 removes such an edge (if present).
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
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
is a matrix) and
value is anything else). That is, if
value is a matrix,
the assignment operator treats it as an adjacency matrix; and if not, it
treats it as a vector (recycled as needed) in the internal ordering of edges
(i.e., edge IDs), skipping over deleted edges. In no case will attributes be
assigned to nonexisted edges.
%v% operators serve as front-ends to the network
and vertex extraction/assignment functions (respectively). In the
x %n% attrname is equivalent to
x %v% attrname
get.vertex.attribute(x,attrname). In assignment,
the respective equivalences are to
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
%vattr% operators are
%v% (respectively). The
short forms are more succinct, but may produce less readable code.
The extracted data, or none.
Carter T. Butts email@example.com
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/
#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") #Assign edge values from a vector g %e% "hoo" <- "wah" g %e% "hoo" g %e% "om" <- c("wow","whee") g %e% "om" #Assign edge values as a sociomatrix 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.