Software

Complex data and complex processes call for complex statistical methodology. Complex statistical methodology requires complex tools. As a part of the Statnet Project and otherwise, I seek to put sophisticated network analysis methodology into the hands of subject-matter researchers by providing robust, flexible, user-friendly, and well-documented software packages.

To facilitate reproducibility and validation of results, I aim to not only implement methodology that I have developed or co-developed but also state-of-the-art methodology developed by others.

My software work has been recognised with a number of awards. Most of these packages have introductory workshops.

I am also a co-creator and co-maintainer of the CRAN Task View on Network Analysis, with Fabio Ashtar Telarico, James Hollway.

Packages

Maintainer

ergm: Fit, Simulate and Diagnose Exponential-Family Models for Networks

tergm: Fit, Simulate and Diagnose Models for Network Evolution Based on Exponential-Family Random Graph Models

latentnet: Latent Position and Cluster Models for Statistical Networks

ergm.multi: Fit, Simulate and Diagnose Exponential-Family Models for Multiple or Multilayer Networks

ergm.count: Fit, Simulate and Diagnose Exponential-Family Models for Networks with Count Edges

ergm.rank: Fit, Simulate and Diagnose Exponential-Family Models for Rank-Order Relational Data

ergm.ego: Fit, Simulate and Diagnose Exponential-Family Random Graph Models to Egocentrically Sampled Network Data

rle: Common Functions for Run-Length Encoded Vectors

statnet.common: Common R Scripts and Utilities Used by the Statnet Project Software

piecemeal: Wrangle Large Simulation Studies

      ergm.userterms (off-CRAN): User-specified Terms for the statnet Suite of Packages

      msgtime (off-CRAN): A one-function R package that overwrites base's message functions to prepend a timestamp to all messages, warnings, and errors.

Coauthor

egor: Import and Analyse Ego-Centered Network Data

statnet: Software Tools for the Statistical Analysis of Network Data

networkLite: An Simplified Implementation of the 'network' Package Functionality

networkDynamic: Dynamic Extensions for Network Objects

Impact

Time series chart showing monthly download counts from RStudio's CRAN mirror of R packages maintained or coauthored by me and their percentile rankings on CRAN, from January 2020 to November 2025. As of November 2025, the following are the package download statistics. Package 'statnet.common', created and maintained by me, was downloaded 43122 times, in the 98th percentile. Package 'ergm', maintained by me, was downloaded 8192 times, in the 95th percentile. Package 'rle', created and maintained by me, was downloaded 6973 times, in the 94th percentile. Package 'networkDynamic', coauthored by me, was downloaded 4220 times, in the 93th percentile. Package 'ergm.count', created and maintained by me, was downloaded 3845 times, in the 92th percentile. Package 'tergm', created and maintained by me, was downloaded 3774 times, in the 92th percentile. Package 'statnet', coauthored by me, was downloaded 3497 times, in the 92th percentile. Package 'ergm.multi', created and maintained by me, was downloaded 2053 times, in the 90th percentile. Package 'egor', coauthored by me, was downloaded 1800 times, in the 90th percentile. Package 'latentnet', created and maintained by me, was downloaded 1797 times, in the 90th percentile. Package 'ergm.ego', created and maintained by me, was downloaded 1720 times, in the 89th percentile. Package 'ergm.rank', created and maintained by me, was downloaded 1206 times, in the 88th percentile. Package 'piecemeal', created and maintained by me, was downloaded 146 times, in the 37th percentile.

As of 2 December 2025, 124 packages on CRAN authored by others strongly depend1 on packages I maintain:

BANAM, Bergm, BFpack, BGGM, bigergm, btergm, collpcm, dnr, easybgm, EpiModel, ergMargins, ergmgp, ergmito, ITNr, MEclustnet, mlergm, Neighboot, nemBM, netmediate, networksem, RDS, SimRDS, sspse, statnetWeb, tergmLite, VBLPCM, xergm.common, autograph, BasketballAnalyzeR, bingat, BioM2, bioregion, biospear, bipartite, BlockmodelingGUI, bootcluster, bootPLS, calmr, cassandRa, CEoptim, CINNA, ClusTCR2, concorR, conserveR, cssTools, degreenet, discourseGT, ecoCopula, econet, econetwork, econullnetr, ecopower, ecostate, ecostats, EGAnet, EloRating, EloSteepness, epinet, ernm, etree, FAfA, fglsnet, ftsspec, genBaRcode, ggnetwork, GOxploreR, GUEST, haplotypes, ideanet, inferCSN, InflectSSP, intensitynet, intergraph, interplex, keyplayer, KinMixLite, latentFactoR, Linkage, linkprediction, lolog, manynet, metanetwork, migraph, MinTriadic, motifr, MRPC, ndtv, NetCluster, netdiffuseR, netmap, netplot, network, networkABC, NetworkChange, NetworkDistance, networkDynamicData, NetworkExtinction, NIMAA, nos, PAFit, PAGE, PDN, PhageCocktail, phyloseqGraphTest, pkggraph, plasma, plsRbeta, plsRcox, plsRglm, quanteda.textplots, relevent, RHMS, RPANDA, SBICgraph, sfc, sidier, sna, spaceNet, SurvGME, tapnet, tip, tsna, WOTPLY, WRSS


1 — Package A strongly depends on package B if A cannot be successfully installed without B. Strong dependencies can be direct or indirect.