Journal of Statistical Software: Fastnet: An R Package For Fast Simulation and
Journal of Statistical Software: Fastnet: An R Package For Fast Simulation and
Abstract
Traditional tools and software for social network analysis are seldom scalable and/or
fast. This paper provides an overview of an R package called fastnet, a tool for scaling
and speeding up the simulation and analysis of large-scale social networks. fastnet uses
multi-core processing and sub-graph sampling algorithms to achieve the desired scale-up
and speed-up. Simple examples, usages, and comparisons of scale-up and speed-up as
compared to other R packages, i.e., igraph and statnet, are presented.
Keywords: social network analysis, network simulation, network metrics, multi-core process-
ing, sampling.
1. Introduction
It has been about twenty years since the introduction of social network analysis (SNA) soft-
ware such as Pajek (Batagelj and Mrvar 1998) and UCINET (Borgatti, Everett, and Freeman
2002). Though these software packages are still existent, the last ten years have witnessed a
significant change in the needs and aspiration of researchers working in the field. The growth
of popular online social networks, such as Facebook, Twitter, LinkedIn, Snapchat, and the
availability of data from large systems such as the telecommunication system and the inter-
net of things (IoT) has ushered in the need to focus on computational and data management
issues associated with SNA. During this period, several Python (Van Rossum et al. 2011)
and Java based SNA tools, such as NetworkX (Hagberg, Schult, and Swart 2008) and SNAP
(Leskovec and Sosič 2016), and R (R Core Team 2020) packages, such as statnet (Hunter,
Handcock, Butts, Goodreau, and Morris 2008; Handcock et al. 2019) and igraph (Csardi and
Nepusz 2006) have emerged that enable researchers and practitioners to perform analytic
tasks on such large social networks. A more comprehensive list of such software and packages
is provide in Table 1.
Initial Name Contributor(s) R version Other version(s) Commercial
release license
1997 Pajek Batagelj et al. – Windows program –
1997 InFlow Krebs – Windows program D
1999 UCINET (including NetDraw) Borgatti et al. – Windows program –
2000 Graphviz AT&T Labs Research – C D
2001 Tulip Auber and Mary – C++ –
D
fastnet: Large-Scale Social Network Simulation and Analysis in R
However, these software packages are seldom geared towards computationally-efficient use
of available hardware resources for multi-core processing or sampling algorithms for the es-
timation of network metrics (Ebbes, Huang, and Rangaswamy 2016). This paper presents
our new scalable R-based SNA package, called fastnet (Shaikh, Dong, and Castro 2020),
which can simulate larger networks and analyze large networks faster. Thus, given a re-
source constraint such as available RAM size, researchers can simulate larger networks and
analyze them faster on fastnet than on other SNA systems such as NetworkX, statnet,
and igraph. fastnet is available from the Comprehensive R Archive Network (CRAN) at
https://CRAN.R-project.org/package=fastnet.
fastnet achieves a speed-up and scale-up by adopting the parallel computing functionalities
provided by foreach and doParallel (Kane, Emerson, and Weston 2013; Weston 2019, 2020)
and managing work allocation to all the available computational resources1 . Though fastnet is
not the first R-based SNA package that uses parallel processing, the algorithms in fastnet are
customized to manage and leverage distributed computing across multiple cores. The detail
of how to utilize and customize parallel processing in fastnet can be found in Section 2.4.
fastnet also enables the speed-up on the computational time required to estimate the struc-
tural metrics of networks. fastnet combines multi-core processing with sampling-based ap-
proaches that approximate the network metrics. The speed-up and the error bounds of the
estimates of the network metrics can be controlled by the sample size and the number of core
available for multi-core processing. The methods used in fastnet are either random node sam-
pling, random link sampling, or random node pair sampling, allowing for easy implementation
and transparent measurements of errors. In the following subsections, we will present a brief
introduction of the package history, the functionalities embedded, and point to some key no-
tations for understanding the theoretical background, and the form of network representation
used in this package.
1.2. Functionality
At present, the fastnet package includes over 40 functionalities for SNA. These functionalities
include the ability to:
• Simulate regular networks, such as complete graphs, ring lattices, and connected cave-
man networks.4
• Simulate random networks through various stochastic processes and classic generat-
ing algorithms, such as two variants of Erdős-Rényi random graphs, i.e., g(N, p) and
g(N, m), Barabási-Albert graphs, and Watts-Strogatz graphs. Erdős-Rényi and Barabási-
Albert graphs can be generated in both direct or indirect forms.
• Simulate random networks using cluster centric algorithms such as the Holme-Kim,
Cluster-Affiliation, and Degree-constraint graphs.
• Convert network represented as igraph objects, adjacency matrices, and edgelists, to
become fastnet objects.
• Compute degree-related network metrics, such as mean degree, median degree, and
degree entropy.
• Compute distance-related network metrics, such as APL, diameter and average eccen-
tricity.
• Compute cluster-related network metrics, such as global transitivity and mean local
clustering coefficient.
• Compute eigenvector-related network metrics, such as mean eigenvector centrality.
• Compute other network metrics, such as graph density.
• Obtain the degree distribution of a network.
• Obtain the neighborhood list of any given node.
• Draw plots, such as the histogram of the degree distribution, the cumulative degree
distribution of network.
The core functionalities and their corresponding call names and parameters are listed in
Table 2 and Table 3 .
Cluster-Affiliation graph net.cluster.affiliation Network size, minimal number of membership, the scaling pa-
rameters and exponential cutoff of the membership distribu-
tion, the minimal number and the exponential cutoff of the
clique-size distribution
information associated with the egocentric list is significantly smaller than the ones with the
entire adjacency matrix, which scales quadratically with N .
An alternative to our egocentric representation approach is to store network information by
using an array of size N ×K = (where K = is the maximum number of connections that an agent
could possibly possess in the network). Though in the R environment an object with a fixed
size is usually more memory efficient than an object with a flexible size (Visser, McMahon,
Merow, Dixon, Record, and Jongejans 2015), the memory-efficiency, in this case, depends on
the ratio between K = and K − . The list form is more efficient when the ratio between K = and
K − is much larger than 1, which is the case for most social networks (Newman 2002). Hence,
the list-based egocentric representation form better fits social network contexts (Castro, Dong,
and Shaikh 2018). In sum, compared to other existing SNA tools, fastnet has the following
advantages:
• The required memory of storing a network instance is linear in the number of nodes in
a network, which is ideal for the scaling-up of network objects in the R environment.
• Lower computational time is required for the calculation of most of the network metrics,
due to embedded multi-core processing and sampling strategies.
Section 2 provides some simple examples to demonstrate the usage of the functionalities
in fastnet. The details of how to obtain network metrics that incorporate sampling-based
techniques are specified. A method for network metric visualization is also specified. Section 3
provides a comparison of the speed-up and scale-up achieved using fastnet as compared to
igraph and statnet. Section 4 uses a case study to illustrate a general process to analyze the
structural properties of real social networks. The last section provides a summary of fastnet.
Note that the network generating functions above are also implemented in other R packages,
such as igraph and statnet. However, the major difference is that fastnet network genera-
tion functions produce a list-based egocentric representations of a network. Other than these
standard network generation functions, fastnet includes some other functions for generat-
ing simulated social networks. These include net.rewired.caveman that generates rewired
caveman networks according to Watts (1999), net.holme.kim that generates Holme-Kim net-
works from Holme and Kim (2002), and net.random.plc that generates random networks
with a power-law degree distribution and an exponential degree cutoff from Newman et al.
(2001). net.degree.constraint that generates social networks that have any pre-defined
degree distributions, and net.cluster.affilication that generates social networks that
have densely-connected and overlapped communities (Dong et al. 2016).
Besides the generation of random networks, for the purpose of benchmarking9 , fastnet also
generates regular networks, such as net.complete that generates fully-connected complete
networks, net.ring.lattice that generates k-regular ring lattices and net.caveman that
generates connected caveman networks according to Watts (1999).
To begin with, we need to load the fastnet package and setup a random seed for the purpose
of reproducibility.
R> library("fastnet")
R> set.seed(99)
For instance, if we want to generate a small rewired caveman network, which has 4 clusters
with 7 nodes in each, and an edge rewiring probability of 0.1, we can type the following syntax
after the R prompt:
fastnet helps users to create the required network with a given name recave. We may look
at the structure of recave by using the preview.net as follows:
R> preview.net(recave)
[[1]]
[1] 2 3 4 5 6 7
[[2]]
[1] 3 4 5 6 7 1
[[3]]
[1] 4 5 6 7 1 2
[[4]]
[1] 5 6 7 1 2 3
[[5]]
9
Here benchmarking refers to measuring how the linkage randomization of a network impacts its topological
characteristics.
10 fastnet: Large-Scale Social Network Simulation and Analysis in R
[1] 7 1 2 3 4
[[6]]
[1] 7 1 2 3 4
[[7]]
[1] 1 2 3 4 5 6
[[8]]
[1] 10 11 12 13
[[9]]
[1] 10 12 13 14
[[10]]
[1] 11 12 14 8 9
Here, preview.net(recave) shows the first ten (which is set by default) agents’ neighbors
information. For example, the agent with ID “2” connects to agents with IDs “1”, “3”, “4”,
“5”, “6”, and “7”, respectively. Also, we can check the neighbor’s information of any given
agent ID. For instance, the neighbor’s information of agent with ID “20” can be obtained as
follows:
[1] 21 17 18 19 15 16
As noted above, we also generate regular networks for comparisons and benchmarks. For
instance, the base connected caveman network can be generated as follows:
We can compare their structures in Figure 1. Similarly, we can generate other types of
networks according to the same paradigm.
● ● ● ●
● ● ●●
●
●● ● ●
●
●● ● ●
●
●
●
● ● ● ●●●
●
● ● ● ●
● ● ● ●
● ●
● ●
● ●
● ● ●
●●
● ●
●●
●● ● ● ●
Figure 1: A rewired caveman network with 4 caves and an edge rewiring probability of 0.1
(left) and the corresponding connected caveman network (right).
fastnet does not provide internal support for networks represented using sparse matrix formats
such as CSR and CSC. A network object using a sparse matrix format needs to be transformed
into an egocentric list format before it can be used within fastnet. Alternately, the network
object that uses a sparse matrix representation could be transformed into its dense equivalent
using an R package such as SparseM and then be converted to a fastnet object using the
function from.adjacency. Additionally, fastnet also allows users to convert a fastnet object
to equivalent network representation formats, such as an igraph object or an edgelist.
2500
Frequency
1500
500
0
30 40 50 60 70 80
Degree
Figure 2: The histogram represents the degree distribution of the network object uer.
[1] 53 47 54 45 47 57 49 48 51 47
R> metric.degree.max(uer)
[1] 84
R> metric.degree.min(uer)
[1] 24
R> metric.degree.sd(uer)
[1] 7.06991
Journal of Statistical Software 13
R> metric.degree.mean(uer)
[1] 50.04296
R> metric.degree.median(uer)
[1] 50
R> metric.degree.effective(uer)
[1] 59
[1] 3.053309
[1] 3.03678
If parameter full.apl is set to be FALSE, the associated random node-pair sampling algorithm
(Castro and Shaikh 2018) is invoked with a default confidence level at 0.95 and the error rate
level at 0.03. Note that, by setting full.apl to be TRUE, fastnet allows users to avoid the
sampling process in order to obtain the exact APL of the network, but it will take longer time
compared with the sampling method (Brandes and Pich 2007). Similar to the aforementioned
process, fastnet provides functions to calculate a network’s median path length (Watts 2003),
diameter (Newman 2010) and effective diameter (Palmer, Siganos, Faloutsos, Faloutsos, and
Gibbons 2001), mean eccentricity (West 2001) and median eccentricity (West 2001), which
are demonstrated as follows:
14 fastnet: Large-Scale Social Network Simulation and Analysis in R
R> metric.distance.mpl(uer)
[1] 3
R> metric.distance.diameter(uer)
[1] 4
[1] 3
[1] 4
[1] 4
R> metric.cluster.global(uer)
[1] 0.001010511
R> metric.cluster.mean(uer)
[1] 0.001009568
R> metric.cluster.median(uer)
[1] 0.0008865248
Journal of Statistical Software 15
As we can see, all three cluster-related metrics of uer are extremely small, which matches the
theoretical low-clustering property of Erdős-Rényi random networks (Newman 2003).
Note that a few network metric calculations or synthetic network simulations do not require
multi-core processing to scale-up or speed-up, and not all computational processes can be
outsourced to the R packages doParallel and foreach due to their limitations on parallelizing
matrix operations and/or evolutionary algorithms.
Topology visualization
We use draw.net to plot a ring lattice and a Barabási-Albert network, for the purpose of
visual comparison (see Figure 3):
●12 ●1 ●
3
●
11
●2
●3
●
10
●
2 ●
5 ●
4
●
10
●4
●9 ●7 ● ●
6 8 ●
9
●
8
●5
● ● 11
12 1
●
7 ●
6 ●
Figure 3: Visualization of a ring lattice and a Barabási-Albert network (both with 12 nodes).
●●
●●
●●
●
●●
●●
●
●●
0.10
●
●
●●
●
Prob
Prob ●●
●
●
●●
●●
●
●●●●
●
●
●●
●
●●
●
0.05
●●
●●
● ●
●●●
●
●●
●
●
●
●●
●●
●
●
●●
●● ●
●●●
●●●
●●●
●
●●●
●●●
●
●●
●●● ● ●
0.00
●●●
●
●●
●●
●●
●
●●
●
●●
●
●●
●
●●
●●
●
●●
●●
●
●●●
●
●
10 53 96 176 10 50 200
Degree Degree
In the above example, we firstly generate a Barabási-Albert network with n = 10,000 and
m = 10 and save it as a fastnet object called ba.large. The left-hand side plot displays the
standard degree distribution of ba.large and the right-hand side plot shows the logarithm-
scale degree distribution of ba.large (see Figure 4). The other variation of the standard
degree distribution is the cumulative degree distribution. fastnet provides two forms of the
Journal of Statistical Software 17
1e+00
1.0
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●●
●
●●
●●
●
●●
●
●●
●●
●
●●
●
●●
●●●
● ●●
●●● ●●
● ●●
●
●
●● ●
●
●
● ●●
●
● ●●
●
● ●●
●
● ●●
●
0.8
●
● ●
●
●
●
● ●
●
●
● ●●
●
●
● ●●
●
● ●
●
●
● ●
●
●●
● ●
●
●
0.6
●
●
●●
● ●
●
1e−02
Prob ●
●
●
Prob
● ●
●
●
●●
●
●●
● ●
●
●●
●
●●
●
0.4 ●
●
●●
●
●●
●
●●
●
●●
●●
● ●
●
●●
●●
●
0.2
●
●
● ●●
●
1e−04
●
0.0
Degree Degree
Figure 5: Visualization of two types of cumulative empirical degree distributions (type (1),
left; type (2), right).
where p(i) is the proportion of nodes with degree i and dmax is the maximum degree in a
network. For example, to draw the cumulative empirical degree distribution of the same
Barabási-Albert network in the previous example, we can use the following syntax:
In Figure 5, the plot on the left-hand side displays the type (1) cumulative degree distribution;
and the plot on the right-hand side displays the type (2) cumulative degree distribution. We
find that both cumulative degree distributions of the Barabási-Albert network presented in
Figure 5 follow a power-law distribution, which validates a fundamental theoretical inference
of a Barabási-Albert network (Barabási and Albert 1999).
●
statnet
igraph ●
fastnet
200
seconds
●
50 100
●
●
● ●
● ●
●
● ●
●
0
number of nodes
Figure 6: The time elapsed for generating directed Erdős-Rényi networks with various sizes
and a fixed connecting probability (p = 0.05) using fastnet, igraph and statnet.
2000
statnet
igraph
fastnet
●
1000
Mb
●
500
●
● ●
●
● ●
● ●
0
number of nodes
Figure 7: The memory requirements for generating undirected Erdős-Rényi networks with
various sizes and a fixed connecting probability (p = 0.5) using fastnet, igraph and statnet.
●
igraph
fastnet
300
fastnet w/ sampling
seconds
200
100
● ●
●
●
●
● ●
●
0
number of nodes
Figure 8: The time elapsed for calculating APL for undirected Erdős-Rényi networks with
various sizes and a fixed connecting probability (p = 0.5) using igraph and fastnet (both
with and without sampling strategy). Note that statnet is unable to calculate the APL for a
network with over 1,000 nodes in this setting.
Journal of Statistical Software 19
4. Case study
The case study presented in this section has been designed to illustrate the use of fastnet for
analyzing real social networks. We use the Twitter network data from the Stanford network
analysis project (SNAP; Leskovec and Krevl 2014). The network contains 81,306 nodes. Since
the edgelist of the network is stored in a .txt file, we first use read.table to read it in R.
Next, we use from.edgelist to import the data as a fastnet object twitter.real. The
functions length(twitter.real) and length(unlist(twitter.real)) can be applied here
to obtain the number of nodes and the number of edges in twitter.real, respectively.
All functions described in Section 2 can now be applied to the fastnet object twitter.real.
For example, we can estimate the network metrics10 .
We can simulate synthetic networks that preserve some characteristics of the real network and
compare them to twitter.real. For example, we can use net.erdos.renyi.gnm to generate
a g(N, m) Erdős-Rényi random network, where the two imperative arguments are the number
of nodes and the number of edges. Similarly, we can use net.barabasi.albert to generate a
Barabási-Albert random network, where the two imperative inputs are the number of nodes
and the number of edges added when a new node is introduced to the generated graph.
In order to compare the structural differences of the synthetic networks and the real network,
we can again resort to use the network metrics such as mean degree, average path length, and
global clustering coefficient, and measure the gaps between the actual versus predicted.
R> er.mean.degree.error.rate <- (metric.degree.mean(twitter.er) -
+ metric.degree.mean(twitter.real))/metric.degree.mean(twitter.real)
R> ba.mean.degree.error.rate <- (metric.degree.mean(twitter.ba) -
+ metric.degree.mean(twitter.real))/metric.degree.mean(twitter.real)
R> er.apl.error.rate <- (metric.distance.apl(twitter.er) -
+ metric.distance.apl(twitter.real))/metric.distance.apl(twitter.real)
R> ba.apl.error.rate <- (metric.distance.apl(twitter.ba) -
+ metric.distance.apl(twitter.real))/metric.distance.apl(twitter.real)
10
It took about 42 seconds on our 16-core, 128GB RAM workstation for running
metric.distance.apl(twitter.real, full.apl = FALSE); about 360 seconds for running
metric.distance.apl(twitter.real, full.apl = TRUE).
20 fastnet: Large-Scale Social Network Simulation and Analysis in R
Using the codes for calculating the error rates of the predicted values, we find that the error
rates of mean degree predicted by the Erdős-Rényi and the Barabási-Albert graphs are 0.00%
and 0.72%, respectively; the error rates of average path length predicted by the Erdős-Rényi
and the Barabási-Albert graphs are 21.92% and 24.66%, respectively; the error rates of global
clustering coefficient predicted by the Erdős-Rényi and the Barabási-Albert graphs are 99.14%
and 97.32%, respectively.
5. Closing comments
The growth of online social networks, such as Facebook, and Twitter, and the availability of
data from large systems such as the Internet and telecommunication networks has ushered
in the need to focus on computational and data management issues associated with SNA.
Researchers and practitioners are therefore seeking advanced computational tools to simulate
network structures and analyze existing networks. fastnet aims at catering to this demand.
fastnet is computational efficient and can generate an egocentric form of networks using
various standard network generation algorithms. fastnet allows users to import and export
objects from and to other packages in R, such as igraph and statnet, and offers the users
the opportunity to speed-up the computations of network metrics by using a combination of
sampling-based algorithms and multi-core processing. It is an excellent tool for users who do
not have access to large computational facilities and are using PCs with multi-core processors
for SNA.
Admittedly, as an alternative to utilizing high-performance computing, fastnet is unable to
ultimately solve the large-scale network analysis issue, due to the inborn limitation of PCs
(i.e., constrained CPU and memory deployed for saving spaces and energy). Hence, the next
step for future fastnet developers is to create an R-based API to let fastnet easily get access
to advanced computing strategies, such as distributed computing and/or cloud computing in
order to expand its analytic capability.
Acknowledgments
The authors would like to thank Christian Llano Robayo, who has contributed to refining
details of fastnet. This research was partially supported by the United States Office of Naval
Research (ONR) through grant N00014-10-1-0140.
References
Batagelj V, Mrvar A (1998). “Pajek – Program for Large Network Analysis.” Connections,
21(2), 47–57.
Borgatti SP, Everett MG, Freeman LC (2002). UCINET for Windows: Software for So-
cial Network Analysis. Harvard, MA, USA. URL https://sites.google.com/site/
ucinetsoftware/home.
Butts C (2008a). “network: A Package for Managing Relational Data in R.” Journal of
Statistical Software, 24(2), 1–36. doi:10.18637/jss.v024.i02.
Butts CT (2008b). “Social Network Analysis with sna.” Journal of Statistical Software, 24(6),
1–51. doi:10.18637/jss.v024.i06.
Castro LE, Dong X, Shaikh NI (2018). “Efficient Simulation and Analysis of Mid-Sized
Networks.” Computers & Industrial Engineering, 119, 273–288. doi:10.1016/j.cie.
2018.03.008.
Castro LE, Shaikh NI (2018). “Random Node Pair Sampling-Based Estimation of Average
Path Lengths in Networks.” International Journal of Operations Research and Information
Systems, 9(3), 27–51. doi:10.4018/ijoris.2018070102.
Csardi G, Nepusz T (2006). “The igraph Software Package for Complex Network Research.”
InterJournal, Complex Systems(1695).
Dong X, Rangaswamy A, Shaikh NI (2016). “New Methods for Generating Synthetic Equiv-
alents of Real Social Networks.” Available at SSRN 3122037.
Ebbes P, Huang Z, Rangaswamy A (2016). “Sampling Designs for Recovering Local and
Global Characteristics of Social Networks.” International Journal of Research in Marketing,
33(3), 578–599. doi:10.1016/j.ijresmar.2015.09.009.
Erdős P, Rényi A (1960). “On the Evolution of Random Graphs.” Publication of the Mathe-
matical Institute of the Hungarian Academy of Sciences, 5(1), 17–60.
Hagberg AA, Schult DA, Swart PJ (2008). “Exploring Network Structure, Dynamics, and
Function Using NetworkX.” In Proceedings of the 7th Python in Science Conference
(SciPy2008), pp. 11–15. Pasadena.
Handcock MS, Hunter DR, Butts CT, Goodreau SM, Krivitsky PN, Bender-deMoll S, Morris
M (2019). statnet: Software Tools for the Statistical Analysis of Network Data. R package
version 2019.6, URL https://CRAN.R-project.org/package=statnet.
Holme P, Kim BJ (2002). “Growing Scale-Free Networks with Tunable Clustering.” Physical
Review E, 65(2), 026107. doi:10.1103/physreve.65.026107.
22 fastnet: Large-Scale Social Network Simulation and Analysis in R
Hunter DR, Handcock MS, Butts CT, Goodreau SM, Morris M (2008). “ergm: A Package to
Fit, Simulate and Diagnose Exponential-Family Models for Networks.” Journal of Statistical
Software, 24(3), 1–29. doi:10.18637/jss.v024.i03.
Kane M, Emerson J, Weston S (2013). “Scalable Strategies for Computing with Massive
Data.” Journal of Statistical Software, 55(14), 1–19. doi:10.18637/jss.v055.i14.
Koenker R, Ng P (2019). SparseM: Sparse Linear Algebra. R package version 1.78, URL
https://CRAN.R-project.org/package=SparseM.
Leskovec J, Krevl A (2014). “SNAP Datasets: Stanford Large Network Dataset Collection.”
http://snap.stanford.edu/data.
Liu G, Zhang M, Yan F (2010). “Large-Scale Social Network Analysis Based on MapReduce.”
In 2010 International Conference on Computational Aspects of Social Networks, pp. 487–
490. doi:10.1109/cason.2010.115.
Luce RD, Perry AD (1949). “A Method of Matrix Analysis of Group Structure.” Psychome-
trika, 14(2), 95–116. doi:10.1007/bf02289146.
Newman MEJ (2002). “The Structure and Function of Networks.” Computer Physics Com-
munications, 147(1–2), 40–45. doi:10.1016/s0010-4655(02)00201-1.
Newman MEJ (2003). “The Structure and Function of Complex Networks.” SIAM Review,
45(2), 167–256. doi:10.1137/s003614450342480.
Newman MEJ, Strogatz SH, Watts DJ (2001). “Random Graphs with Arbitrary Degree
Distributions and Their Applications.” Physical Review E, 64(2), 026118. doi:10.1103/
physreve.64.026118.
R Core Team (2020). R: A Language and Environment for Statistical Computing. R Founda-
tion for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
Shaikh N, Dong X, Castro L (2020). fastnet: Large-Scale Social Network Analysis. R package
version 1.0.0, URL https://CRAN.R-project.org/package=fastnet.
Uetz P, Dong YA, Zeretzke C, Atzler C, Baiker A, Berger B, Rajagopala SV, Roupelieva M,
Rose D, Fossum E, et al. (2006). “Herpesviral Protein Networks and Their Interaction with
the Human Proteome.” Science, 311(5758), 239–242. doi:10.1126/science.1116804.
Visser MD, McMahon SM, Merow C, Dixon PM, Record S, Jongejans E (2015). “Speeding Up
Ecological and Evolutionary Computations in R: Essentials of High Performance Computing
for Biologists.” PLOS Computational Biology, 11(3), 1–11. doi:10.1371/journal.pcbi.
1004140.
Wasserman S, Faust K (1994). Social Network Analysis: Methods and Applications. Cam-
bridge University Press, Cambridge. doi:10.1017/cbo9780511815478.
Watts DJ (2003). Small Worlds: The Dynamics of Networks between Order and Randomness.
Princeton University Press.
West DB (2001). Introduction to Graph Theory. 2nd edition. Prentice Hall, Upper Saddle
River.
Weston S (2019). doParallel: Foreach Parallel Adaptor for the parallel Package. R package
version 1.0.15, URL https://CRAN.R-project.org/package=doParallel.
Weston S (2020). foreach: Provides Foreach Looping Construct. R package version 1.4.8,
URL https://CRAN.R-project.org/package=foreach.
Affiliation:
Xu Dong
Tamr Inc.
E-mail: [email protected]
Luis Castro
World Bank
E-mail: [email protected]