add.vertices.Rdadd.vertices adds a specified number of vertices to an existing
network; if desired, attributes for the new vertices may be specified as
well.
add.vertices(x, nv, vattr = NULL, last.mode = TRUE, ...)Invisibly, a pointer to the updated network object;
add.vertices modifies its argument in place.
New vertices are generally appended to the end of the network (i.e., their
vertex IDs begin with network.size(x) an count upward). The one
exception to this rule is when x is bipartite and
last.mode==FALSE. In this case, new vertices are added to the end of
the first mode, with existing second-mode vertices being permuted upward in
ID. (x's bipartite attribute is adjusted accordingly.)
Note that the attribute format used here is based on the internal
(vertex-wise) storage method, as opposed to the attribute-wise format used
by network. Specifically, vattr should be a list with
one entry per new vertex, the ith element of which should be a list with an
element for every attribute of the ith vertex. (If the required na
attribute is not given, it will be automatically created.)
add.vertices was converted to an S3 generic funtion in version
1.9, so it actually calls add.vertices.network by default and may
call other versions depending on context (i.e. when called with a
networkDynamic object).
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
#Initialize a network object
g<-network.initialize(5)
g
#> Network attributes:
#> vertices = 5
#> directed = TRUE
#> hyper = FALSE
#> loops = FALSE
#> multiple = FALSE
#> bipartite = FALSE
#> total edges= 0
#> missing edges= 0
#> non-missing edges= 0
#>
#> Vertex attribute names:
#> vertex.names
#>
#> No edge attributes
#Add five more vertices
add.vertices(g,5)
g
#> Network attributes:
#> vertices = 10
#> directed = TRUE
#> hyper = FALSE
#> loops = FALSE
#> multiple = FALSE
#> bipartite = FALSE
#> total edges= 0
#> missing edges= 0
#> non-missing edges= 0
#>
#> Vertex attribute names:
#> vertex.names
#>
#> No edge attributes
#Create two more, with attributes
vat<-replicate(2,list(is.added=TRUE,num.added=2),simplify=FALSE)
add.vertices(g,2,vattr=vat)
g%v%"is.added" #Values are only present for the new cases
#> [1] NA NA NA NA NA NA NA NA NA NA TRUE TRUE
g%v%"num.added"
#> [1] NA NA NA NA NA NA NA NA NA NA 2 2
#Add to a bipartite network
bip <-network.initialize(5,bipartite=3)
get.network.attribute(bip,'bipartite') # how many vertices in first mode?
#> [1] 3
add.vertices(bip,3,last.mode=FALSE)
get.network.attribute(bip,'bipartite')
#> [1] 6