CRAN Task View: Network Analysis

Maintainer:Fabio Ashtar Telarico, Pavel N. Krivitsky, James Hollway
Contact:Fabio-Ashtar.Telarico at fdv.uni-lj.si
Version:2025-03-19
URL:https://CRAN.R-project.org/view=NetworkAnalysis
Source:https://github.com/cran-task-views/NetworkAnalysis/
Contributions:Suggestions and improvements for this task view are very welcome and can be made through issues or pull requests on GitHub or via e-mail to the maintainer address. For further details see the Contributing guide.
Citation:Fabio Ashtar Telarico, Pavel N. Krivitsky, James Hollway (2025). CRAN Task View: Network Analysis. Version 2025-03-19. URL https://CRAN.R-project.org/view=NetworkAnalysis.
Installation:The packages from this task view can be installed automatically using the ctv package. For example, ctv::install.views("NetworkAnalysis", coreOnly = TRUE) installs all the core packages or ctv::update.views("NetworkAnalysis") installs all packages that are not yet installed and up-to-date. See the CRAN Task View Initiative for more details.

This CRAN task view provides a curated list of R packages for analyzing and modelling networks (also known as relational data or graphs). These tools facilitate the exploration of natural, social, and other phenomena by focusing on the relationships between entities.

This page lists a number of packages, and sometimes core functions, in several sections based on their scope and focus:

  1. The first section outlines the main ecosystems of R packages that include basic network-analytic operations such as creating, manipulating, and describing relational data. Here we also list choices of graphical packages for visualizing or drawing networks. For those new to network analysis in R, we recommend starting with the igraph introduction (Csárdi and Nepus 2006) or the statnet tutorial (Bojanowski and Jasny 2024).

  2. Subsequently, packages and functions for advanced network-analytical tasks are presented. We currently structure these into three subsections: (1) centrality, (2) community detection, and (3) model-based clustering.

  3. Then, packages offering modelling and inferential tools applicable across disciplines and fields of interest are discussed. A distinction is drawn between models that are primarily for cross-sectional anddynamic data, with an extra section on special models for multimodal, multilevel, and multiplex data.

  4. Finally, the focus shifts to packages containing data structures, methods, and models with a narrower field of application. The list includes some of the areas where network methods are more widely applied: ecology, bibliometrics, life and natural sciences, neurosciences, psychology, public health, social sciences and economics.

The list excludes packages that primarily deal with graph representations of conditional in/dependence between variables. This includes Bayesian networks and Markovian graphs, which, despite their relevance to statistical modeling, are covered under the CRAN task view GraphicalModels. This distinction keeps the list focused on network analysis to explore broader relational dynamics.

Some packages could appear under multiple headings because they can perform multiple tasks (e.g., clustering and visualization). But, for the sake of brevity, non-core packages are listed only once: in the section that described each package’s main use case.

If you think that a package is missing from the list, please file an issue in the GitHub repository or contact the maintainer.

Table of contents

Ecosystems and Data

Ecosystems

The starting point for analyzing networks in R is to familiarize with the main package ‘families’ or ecosystems. Using them, users can access functions to create, import/export, edit, and otherwise operate on relational data.

Relational data management and conversion tools

Although the ‘core’ packages for network analysis in R can create a wide range of networks from different types of inputs, there are also specialized packages for constructing more specialized formats or for converting or coercing between different formats.

Exploratory Data Analysis

Moving to Exploratory Data Analysis (EDA), igraph, sna, and manynet offer functions for a similar set of network-analytic and visualization operations, whereas tidygraph is more limited. However, some algorithms differ from each other and from those are some specialized packages for their implementation, speed, or defaults.

General

Visualization

Interactive visualization

More details in the CRAN task view DynamicVisualizations.

Static visualization

Extensions for ggplot2

Layouts

Centrality

Both main ecosystems can compute betweenness, eigenvalue, power, and closeness centrality, but igraph offers more options than sna and tidygraph overall. In addition:

Group detection

Community detection

Blockmodeling

Generalized (structural and/or regular equivalence)

Stochastic (SBM)

Others

Statistical modeling

Statistical modelling in network analysis enables researchers to uncover patterns, test hypotheses, and make predictions about network structures and dynamics. This section introduces R packages that support a range of statistical approaches, from modelling static (cross-sectional) networks to analyzing dynamic, multimodal, and multilevel networks. These methods provide tools to infer underlying processes that generate observed network data, assess the significance of observed patterns, and simulate network structures under various conditions.

Cross-sectional networks

Multimodal and multilevel networks

Dynamic networks

The following packages focus on modeling and simulation of networks that evolve over time and network processes that occur over time.

Relational events

Relational event data contains information about exact times during which the nodes interact. This is commonly observed for e-mail, radio, and other communications.

Discrete observations

The following package are focused on modeling series of networks, also known as panel data.

Diffusion on networks

Others

Field packages

As an interdisciplinary approach, network analysis is used in a number of fields, where the specific needs and interests of those fields are addressed by particular packages.

Ecological networks

Bibliometric networks

Networks in the natural and life sciences

Neurosciences and psychology

Spatial networks

Public-health networks

Social and economic networks

References

CRAN packages

Core:igraph, manynet, network, sna.
Regular:Ac3net, amen, AnimalHabitatNetwork, aniSNA, asnipe, ATNr, backbone, BASiNET, BASiNETEntropy, bc3net, bibliometrix, bibliometrixData, biblionetwork, BIEN, bigergm, bionetdata, bipartite, bipartiteD3, birankr, blockmodeling, BlockmodelingGUI, blockmodels, BMconcor, BoolNet, bootnet, btergm, c3net, Cascade, cassandRa, cencrne, centiserve, chessboard, CINNA, clustNet, collpcm, concorR, dBlockmodeling, diagram, Diderot, dnr, dyads, EcoNetGen, econetwork, econullnetr, edgebundle, egor, epanet2toolkit, EpiModel, epinet, ergm, ergm.count, ergm.ego, ergm.multi, ergm.rank, ergmgp, ergmito, ERPM, fastnet, FinNet, geonetwork, gganimate, ggdendro, ggforce, ggnetwork, ggplot2, ggraph, ggsom, goldfish, graphclust, graphlayouts, graphon, greed, GREMLINS, HospitalNetwork, hybridModels, idopNetwork, incidentally, influential, intensitynet, intergraph, ionet, ITNr, kmBlock, latenetwork, latentnet, linkcomm, localboot, lolog, Matrix, migraph, mlergm, MLVSBM, modnets, MoNAn, multigraph, multinet, multinets, multiplex, nda, ndtv, neatmaps, netClust, netdiffuseR, netrankr, networkD3, NetworkDistance, networkDynamic, NetworkToolbox, oaqc, patchwork, qgraph, relevent, rem, rgraph6, roughnet, RSiena, sbm, sfnetworks, signnet, snahelper, statnet, StochBlock, tergm, tidygraph, tnet, tsna, VBLPCM, visNetwork, WGCNA.
Archived:dynsbm.

Other resources