Coercion between diffnet, network and networkDynamic
An object of class diffnet
An integer vector indicating the slices to subset
Further arguments passed to networkDynamic
List of arguments passed to diffnet_to_network.
List of arguments passed to networkDynamic
Character scalar. Name of the vertex attribute that holds the times of adoption.
A list of network objects.
Integer scalar. Passed to new_diffnet.
Integer scalar. Passed to new_diffnet.
diffnet_to_network returns a list of length length(slices) in which
each element is a network object corresponding a slice of the
graph (diffnet object). The attributes list will include toa (time of
adoption).
An object of class networkDynamic.
diffnet_to_networkDynamic calls diffnet_to_network and
uses the output to call networkDynamic, passing the resulting list of
network objects as network.list (see networkDynamic).
By default, diffnet_to_networkDynamic passes net.obs.period as
net.obs.period = list(
observations = list(range(graph$meta$pers)),
mode="discrete",
time.increment = 1,
time.unit = "step"
)By default, networkDynamic_to_diffnet uses the first slice as reference for
vertex attributes and times of adoption.
By default, network_to_diffnet uses the first element of graph
(a list) as reference for vertex attributes and times of adoption.
Since diffnet does not support edges attributes, these will be lost when
converting from network-type objects. The same applies to network
attributes.
Other Foreign:
igraph,
read_pajek(),
read_ucinet_head()
# Cohersing a diffnet to a list of networks ---------------------------------
set.seed(1)
ans <- diffnet_to_network(rdiffnet(20, 2))
#> Warning: The option -copy.first- is set to TRUE. In this case, the first graph will be treated as a baseline, and thus, networks after T=1 will be replaced with T-1.
ans
#> $`1`
#> Network attributes:
#> vertices = 20
#> directed = TRUE
#> hyper = FALSE
#> loops = TRUE
#> multiple = FALSE
#> bipartite = FALSE
#> name = A diffusion network
#> behavior = Random contagion
#> total edges= 20
#> missing edges= 0
#> non-missing edges= 20
#>
#> Vertex attribute names:
#> real_threshold toa vertex.names
#>
#> No edge attributes
#>
#> $`2`
#> Network attributes:
#> vertices = 20
#> directed = TRUE
#> hyper = FALSE
#> loops = TRUE
#> multiple = FALSE
#> bipartite = FALSE
#> name = A diffusion network
#> behavior = Random contagion
#> total edges= 20
#> missing edges= 0
#> non-missing edges= 20
#>
#> Vertex attribute names:
#> real_threshold toa vertex.names
#>
#> No edge attributes
#>
# and back
network_to_diffnet(graph.list = ans, toavar="toa")
#> Dynamic network of class -diffnet-
#> Name : A diffusion network
#> Behavior : Random contagion
#> # of nodes : 20 (1, 2, 3, 4, 5, 6, 7, 8, ...)
#> # of time periods : 2 (1 - 2)
#> Type : directed
#> Final prevalence : 0.20
#> Static attributes : -
#> Dynamic attributes : na, real_threshold (2)
# If it was static, we can use -graph- instead
network_to_diffnet(ans[[1]], toavar="toa")
#> Warning: -graph- is static and will be recycled (see ?new_diffnet).
#> Dynamic network of class -diffnet-
#> Name : A diffusion network
#> Behavior : Random contagion
#> # of nodes : 20 (1, 2, 3, 4, 5, 6, 7, 8, ...)
#> # of time periods : 2 (1 - 2)
#> Type : directed
#> Final prevalence : 0.20
#> Static attributes : na, real_threshold (2)
#> Dynamic attributes : -
# A random diffusion network ------------------------------------------------
set.seed(87)
dn <- rdiffnet(50, 4)
#> Warning: The option -copy.first- is set to TRUE. In this case, the first graph will be treated as a baseline, and thus, networks after T=1 will be replaced with T-1.
ans <- diffnet_to_networkDynamic(dn)
#> Argument base.net not specified, using first element of network.list instead
#> Created net.obs.period to describe network
#> Network observation period info:
#> Number of observation spells: 1
#> Maximal time range observed: 1 until 4
#> Temporal mode: discrete
#> Time unit: step
#> Suggested time increment: 1
# and back
networkDynamic_to_diffnet(ans, toavar = "toa")
#> Dynamic network of class -diffnet-
#> Name : A diffusion network
#> Behavior : Random contagion
#> # of nodes : 50 (1, 2, 3, 4, 5, 6, 7, 8, ...)
#> # of time periods : 4 (1 - 4)
#> Type : directed
#> Final prevalence : 0.12
#> Static attributes : -
#> Dynamic attributes : na, real_threshold (2)