Pavel N. Krivitsky
@krivitsky.net
98 followers 44 following 30 posts
Inveterate 🕸 modeller 𝑃(🦋; 𝜽) = 𝘩(🦋) exp{𝜼(𝜽) · 𝒔(🦋)} / 𝜅(𝜽) 👨🏻‍🏫 Statistics at UNSW 🇦🇺 👨🏻‍💻 10 #RStats 📦 ex-🪑 @ANSNA.org.au https://krivitsky.net https://statnet.org https://github.com/krivit
Posts Media Videos Starter Packs
krivitsky.net
Initial release of #Rstats 📦 {piecemeal} for wrangling large simulation studies is now on #CRAN . A demo here: cran.r-project.org/package=piec... . I believe that brings me up to 10. 😅
A Simulation Study using Piecemeal
cran.r-project.org
krivitsky.net
So, this is what the typical first line would look like:

sim <- piecemeal::Piecemeal$new(dir)

or

sim <- Piecemeal::Piecemeal$new(dir)

Thoughts?
krivitsky.net
Getting this ready for #CRAN, a quick poll: should I call it {piecemeal} or {Piecemeal}? It's basically one #R6 class, `Piecemeal`, e.g.,

sim <- Piecemeal$new(tmpdir) # Initialise
sim$worker(f)$nrep(5)$ etc. # Set up
sim$run() # Execute
results <- sim$result_df() # Collate
krivitsky.net
#rstats 📦 {latentnet} 2.12.0 is now on #CRAN. It implements a long-requested feature for fitting count networks (interactions, co-occurrences, etc.) using a binomial model. Different pairs of actors can now have different binomial "trials". Full news at cran.r-project.org/package=late... .
cran.r-project.org
krivitsky.net
Looking forward to this!
aespinosarada.bsky.social
Excited to announce the Social Network Summer School 🇨🇱!
📅 Jan 12–16, 2026 | Santiago, Chile
Keynotes: @estebanmoro.bsky.social & @krivitsky.net

@insna.bsky.social & @netscisociety.bsky.social
Apply by Oct 5 👉 snlab-cl.github.io/summerschool/
krivitsky.net
krivitsky.net/sunbelt2025/ is now linked from sunbelt2025.org by @sunbelt2025paris.bsky.social l . Double-checking the code now... 😅
krivitsky.net
This list is based on the PDF you can export from Whova, which I hopefully parsed correctly. It is in no way endorsed by @insna.bsky.social or @sunbelt2025paris.bsky.social 's organisers. I will strive to keep it up to date throughout the conference, but the updates are not automatic.
krivitsky.net
To work around Whova app's apparent inability to actually tell you what talks (not sessions!) are coming up next, I've extracted the list of all upcoming @sunbelt2025paris.bsky.social talks sorted by the talk's (not the session's!) start time: krivitsky.net/sunbelt2025/ . Feel free to share around.
krivitsky.net
Version 1.1.3 of {ergm.ego}, a #rstats 📦 for #ergm modelling of #egodata, is now on #CRAN. This is mostly a bugfix and optimisation release. Details at cran.r-project.org/package=ergm... .
R: NEWS file for the 'ergm.ego' package
cran.r-project.org
krivitsky.net
#ergm 4.9.0 #rstats 📦 is on #CRAN . This release improves robustness, introduces or improves some valued ERGM terms, and provides a more flexible way to specify parameters and target statistics. As always, see cran.r-project.org/package=ergm... .
R: NEWS file for the 'ergm' package
cran.r-project.org
krivitsky.net
There are also more utilities for PSD matrix calculations, particularly for computing xᵀV⁻¹x, taking into account that:

* base::solve() treats diag(c(1e10, 1e-10)) as computationally singular.

* Even when V is, in fact, singular, a unique and sensible answer still exists if x is in the span of V.
krivitsky.net
A helper function modify_in_place() for easily implementing functions that robustly modify their arguments in place (without resorting to environments a la #R6). E.g.,

> inc <- function(x){
modify_in_place(x, x+1)
}
> x <- 1:3
inc(x[1])
> x
[1] 2 2 3
krivitsky.net
New functions include statnet.common::replace(x, list, values) a drop-in replacement for the {base} function that can take function arguments for list= and values= so that, e.g.,

x |> replace(is.na, 0)

does exactly what you would want it to, as does `replace<-`, for

replace(x, is.na) <- 0

.
krivitsky.net
Next #rstats 📦 up on #CRAN is {statnet.common} 4.12.0. It is, as always, a hodgepodge of functions and methods used throughout the #statnet project packages. @mbojan.sciences.social.ap.brid.gy contributed to this release. Release notes are, as always, at cran.r-project.org/web/packages... .
NEWS
cran.r-project.org
krivitsky.net
Granted #Bioconductor 's S4Vectors::Rle() almost certainly does everything that {rle} does but better, but it also means depending on Bioconductor. Is it no longer the hassle that it used to be?
krivitsky.net
{rle} 0.10.0 #rstats 📦 is on #CRAN. {rle} aims to make run-length-encoded objects from base::rle() transparently behave as if they were the vectors they encode for arithmetic, indexing, summary, and other purposes. This release introduces subsetting by positive numeric indices.
Reposted by Pavel N. Krivitsky
njtierney.bsky.social
Calling all #rstats friends in Australia/Oceania!

Exciting news! Fonti Kar (@fontikar.bsky.social) and I are forming a "C Study Group for R Contributors" in 2025. It's like getting skills to help build the Millennium Falcon of programming languages!

1/n
krivitsky.net
This is really cool! I've been using US election maps to illustrate the point in my Data Viz class, but I suppose it's long past time to localise.
krivitsky.net
I suspect that most of us (statistical methodologists) already have loose code that does something like this, borrowed or evolved over the course of our careers.

I tried to make the whole process user-friendly and robust, so we won't need to reinvent this particular wheel again.
krivitsky.net
If a particular run produces an error, the simulation continues; the error can be identified, reproduced, and debugged. If the whole job runs out of time, the next one can pick up where it left off. You can even submit multiple identical jobs, and they will seamlessly avoid each other's runs.
krivitsky.net
The basic idea: rather than running the simulation code on the cluster directly and then returning its output, wrap it in code that takes the output (or its error info) and saves it to an RDS file unique to that treatment combination and replication. These can then be loaded and collated.
krivitsky.net
While setting up yet another large #simulationstudy in which some replications result in an error, the total runtime is not completely predictable for an #HPC #parallelcomputing job, etc., I drafted an #rstats package for wrangling such simulations: github.com/krivit/piece... . Feedback appreciated!
GitHub - krivit/piecemeal: An R package for wrangling large simulations
An R package for wrangling large simulations. Contribute to krivit/piecemeal development by creating an account on GitHub.
github.com
Reposted by Pavel N. Krivitsky
zeileis.org
🚨 New CRAN Task View: Network Analysis
#rstats #dataviz

By Fabio Ashtar Telarico, Pavel N. Krivitsky @krivitsky.net, James Hollway @jhollway.bsky.social

URL: cran.r-project.org/view=Network...
Screenshot of the CRAN Task View "Network Analysis" at https://CRAN.R-project.org/view=NetworkAnalysis
Reposted by Pavel N. Krivitsky
ansna.org.au
Save the date for the Australian Social Network Analysis Conference 2025!

When: 27-28 November 2025 (Workshops 26 November)
Where: Byron Bay | Arakwal Bumberlin Country, NSW, Australia
Venue: Byron Bay Community Centre Theater, 69 Jonson St, Byron Bay

#ASNAC2025 #Socialnetworkanalysis