People
Jeroen Janssens

Jeroen Janssens

Head of Developer Relations

Jeroen Janssens, PhD, is Head of Developer Relations at Posit, PBC. His expertise lies in visualizing data, implementing machine learning models, and building solutions using Python, R, JavaScript, and Bash. He’s passionate about open source and sharing knowledge. He’s the author of Python Polars: The Definitive Guide (O’Reilly, 2025) and Data Science at the Command Line (O’Reilly, 2021). Jeroen holds a PhD in machine learning from Tilburg University and an MSc in artificial intelligence from Maastricht University. He lives with his wife and two kids in Rotterdam, the Netherlands.

Software by Jeroen Janssens

devtools

devtools

Tools to make an R developer's life easier

R
2.5k
dplyr

dplyr

dplyr: A grammar of data manipulation

R
5k
forcats

forcats

🐈🐈🐈🐈: tools for working with categorical variables (factors)

R
554
ggplot2

ggplot2

An implementation of the Grammar of Graphics in R

R
6.9k
haven

haven

Read SPSS, Stata and SAS files from R

C
447
lubridate

lubridate

Make working with dates in R just that little bit easier

R
785
plotnine

plotnine

A Grammar of Graphics for Python

Python
4.5k
purrr

purrr

A functional programming toolkit for R

R
1.4k
readr

readr

Read flat files (csv, tsv, fwf) into R

R
1k
stringr

stringr

A fresh approach to string manipulation in R

R
654
tidyr

tidyr

Tidy Messy Data

R
1.4k
usethis

usethis

Set up commonly used 📦 components

R
899
Placeholder

archive

R bindings to libarchive, supporting a large variety of archive formats

C++
147
asciicast

asciicast

Turn R scripts into terminal screencasts

R
243
Placeholder

available

Check if a package name is available to use

R
144
bench

bench

High Precision Timing of R Expressions

R
255
Placeholder

bigrquery

An interface to Google's BigQuery from R

R
524
Placeholder

bit64

An R package with an S3 Class for Vectors of 64bit Integers

R
39
Placeholder

blob

A simple S3 class for representing BLOBs

R
49
bonsai

bonsai

parsnip wrappers for tree-based models

R
54
Placeholder

brio

Basic R Input Output

R
59
broom

broom

Convert statistical analysis objects from R into tidy format

R
1.5k
brulee

brulee

High-Level Modeling Functions with 'torch'

R
74
butcher

butcher

Reduce the size of model objects saved to disk

R
137
Placeholder

cachem

Key-value caches for R

R
64
callr

callr

Call R from R

R
303
censored

censored

Parsnip wrappers for survival models

R
122
chatlas

chatlas

Your friendly guide to building LLM chat apps in Python with less effort and more clarity

Python
150
cli

cli

Tools for making beautiful & useful command line interfaces

R
695
clock

clock

A Date-Time Library for R

R
110
concept-maps

concept-maps

Concept maps for all things data science

HTML
166
Placeholder

coro

Coroutines for R

R
181
crayon

crayon

🖍️ R package for colored terminal output — now superseded by cli

R
323
Placeholder

DBI

A database interface (DBI) definition for communication between R and RDBMSs

R
314
dbplyr

dbplyr

Database (DBI) backend for dplyr

R
505
Placeholder

debugme

Easy and efficient debugging for R packages

R
153
Placeholder

desc

Manipulate DESCRIPTION files

R
124
dials

dials

Tools for creating tuning parameter values

R
116
discrim

discrim

Wrappers for discriminant analysis and naive Bayes models for use with the parsnip package

R
31
Placeholder

downlit

Syntax Highlighting and Automatic Linking

R
90
dtplyr

dtplyr

Data table backend for dplyr

R
673
duckplyr

duckplyr

A drop-in replacement for dplyr, powered by DuckDB for speed

R
373
ellmer

ellmer

Call LLM APIs from R

R
585
embed

embed

Extra recipes for predictor embeddings

R
144
Placeholder

filelock

Cross platform file locking in R

R
44
finetune

finetune

Additional functions for model tuning

R
63
fs

fs

Provide cross platform file operations based on libuv

C
380
Placeholder

gargle

Infrastructure for calling Google APIs from R, including auth

R
114
Placeholder

gh

Minimalistic GitHub API client in R

R
232
glue

glue

Glue strings to data in R. Small, fast, dependency free interpreted string literals

R
743
Placeholder

gmailr

Access the Gmail RESTful API from R

R
236
hardhat

hardhat

Construct Modeling Packages

R
108
httr2

httr2

Make HTTP requests and process their responses. A modern reimagining of httr

R
260
infer

infer

An R package for tidyverse-friendly statistical inference

R
782
isoband

isoband

isoband: An R package to generate contour lines and polygons

C++
132
Placeholder

keyring

:closed_lock_with_key: Access the system credential store from R

C
200
Placeholder

later

Schedule an R function or formula to run after a specified period of time

C++
148
Placeholder

lifecycle

Manage the life cycle of your exported functions and arguments

R
92
lobstr

lobstr

Understanding complex R objects with tools similar to str()

C
312
magrittr

magrittr

Improve the readability of R code with the pipe

R
965
mirai

mirai

Minimalist Async Evaluation Framework for R

R
301
multilevelmod

multilevelmod

Parsnip wrappers for mixed-level and hierarchical models

R
73
nanonext

nanonext

R binding for NNG (Nanomsg Next Gen)

C
77
Placeholder

nanoparquet

R package to read and write Parquet files

C++
80
odbc

odbc

Connect to ODBC databases (using the DBI interface)

C++
408
pak

pak

A fresh approach to package installation

C
786
parsnip

parsnip

A tidy unified interface to models

R
643
Placeholder

pingr

ICMP and TCP ping and related tools

C
38
Placeholder

pkgbuild

Find tools needed to build R packages

R
77
Placeholder

pkgdepends

R Package Dependency Resolution

C
129
pkgdown

pkgdown

Generate static html documentation for an R package

R
765
Placeholder

pkgload

Simulate installing and loading a package

R
59
Placeholder

prettycode

Syntax highlight R code in the terminal

R
107
Placeholder

prettyunits

Pretty, human readable formatting of quantities

JavaScript
134
probably

probably

Tools for post-processing class probability estimates

R
120
Placeholder

processx

Execute and Control Subprocesses from R

R
243
Placeholder

profvis

Visualize R profiling data

JavaScript
311
progress

progress

Progress bar in your R terminal

R
474
Placeholder

ps

R package to query, list, manipulate system processes

C
83
R6

R6

Encapsulated object-oriented programming for R

R
423
ragnar

ragnar

RAG in R

R
165
Placeholder

rappdirs

Find OS-specific directories to store data, caches, and logs. A port of python's AppDirs

R
91
rcmdcheck

rcmdcheck

Run R CMD check from R and collect the results

R
122
Placeholder

remotes

Install R packages from GitHub, GitLab, Bitbucket, git, svn repositories, URLs

R
355
reprex

reprex

Render bits of R code for sharing, e.g., on GitHub or StackOverflow

R
749
rlang

rlang

Low-level API for programming with R

R
558
rsample

rsample

Classes and functions to create and summarize resampling objects

R
340
rules

rules

parsnip extension for rule-based models

R
42
sessioninfo

sessioninfo

Print Session Information

R
80
Placeholder

slider

Sliding Window Functions

R
310
supported-by-posit

supported-by-posit

Add a "Supported by Posit" badge to a package website

JavaScript
2
testthat

testthat

An R 📦 to make testing 😀

R
925
tibble

tibble

A modern re-imagining of the data frame

R
738
tidymodels

tidymodels

Easily install and load the tidymodels packages

R
813
tidypredict

tidypredict

Run predictions inside the database

R
263
Placeholder

tidyselect

A backend for functions taking tidyverse selections

R
128
tune

tune

Tools for tidy parameter tuning

R
324
Placeholder

urlchecker

Run CRAN URL checks from older versions of R

R
44
Placeholder

usemodels

Boilerplate Code for tidymodels

R
86
vctrs

vctrs

Generic programming with typed R vectors

C
301
Placeholder

vdiffr

Visual regression testing and graphical diffing with testthat

C++
195
vitals

vitals

Large language model evaluation for R

JavaScript
52
vroom

vroom

Fast reading of delimited files

C++
642
Placeholder

watcher

Watch the File System for Changes

C++
34
Placeholder

webfakes

Fake web apps for HTTP testing R packages

C
63
withr

withr

Methods For Temporarily Modifying Global State

R
177
workflows

workflows

Modeling Workflows

R
210
workflowsets

workflowsets

Create a collection of modeling workflows

R
96
Placeholder

xml2

Bindings to libxml2

R
223
Placeholder

xopen

Open System Files, URLs, Anything

Shell
34
yardstick

yardstick

Tidy methods for measuring model performance

R
398
Placeholder

zip

Platform independent zip compression via miniz

C
93

Posts and resources by Jeroen Janssens

Seeing Beyond Statistics: Anscombe's Quartet and the Power of Graphs

Seeing Beyond Statistics: Anscombe’s Quartet and the Power of Graphs

In 1973, statistician Francis Anscombe challenged the commonly held belief that “numerical calculations are exact, but graphs are rough” (Anscombe, 1973). His strategy was to manually construct four small datasets—now known as Anscombe’s Quartet—that have different distributions but nearly identical descriptive statistics. It’s perhaps the best argument for visualizing data. In this notebook we replicate his paper by using Plotnine to visualize those datasets and Polars to verify their descriptive statistics. More specifically, we:
5 mins