Francis Windram
banner
franwin.co.uk
Francis Windram
@franwin.co.uk
Postdoc, Computational ecologist interested in spiderwebs, biological traits, imaging, vector-borne disease and good solid R code.

www.franwin.co.uk for more details.

he/him. Views my own.
Reposted by Francis Windram
@franwin.co.uk drove a massive rework of rTPC this year, making package maintenance much easier. rTPC now supports 49 different model formulations, vignettes are updated, & you can parallelise model fitting using new purrr & mirai, which is DOPE. #rstats 🧪

padpadpadpad.github.io/rTPC/article...
October 12, 2025 at 7:04 PM
Reposted by Francis Windram
🚨 New paper 🚨

How does livestock grazing impact tick-borne disease hazard? Our new study in the New Forest National Park used a paired experiment to find out.

Important for #rewilding and #conservation grazing schemes!

#Ticks #LymeDisease @ukhsa.bsky.social

www.sciencedirect.com/science/arti...
The role of large ungulate grazers on Ixodes ricinus and tick-borne pathogens in the New Forest - a case study for future rewilded landscapes
Large ungulate grazers can manage habitats via conservation grazing, a practice using livestock to control vegetation growth, which has many ecologica…
www.sciencedirect.com
August 29, 2025 at 7:59 AM
This would very quickly become my favourite game I reckon. As a bonus it should very occasionally throw in a problem that seems easy and actually was a fiendish open question in computer science or mathematics for 50+ years.
Share your coding dreams!
I used to have nightmares where I was in the center of a dark, scary forest, and I had to code to escape, each coding success taking me closer to the edge and freedom. If I had an error, I'd appear back at the center and have to start over. I never got out. #rstats #databs
Last night I dreamt I was debugging regex that I'd written to categorise my dreams

I need to lay off the regex 😵‍💫

#rstats #databs
July 27, 2025 at 11:33 AM
Things that you as a data scientist can replace the term "artificial intelligence" with in stupid marketing text to stop your brain detonating

E.g. "We will use advanced methods such as <BLANK> to track sewage spills."

- Basic regression models
- Interns
- The CEO's best guess
- An actual fish
...
July 24, 2025 at 5:54 PM
I feel genuinely ashamed that this wooooshed me for a full two minutes before I realised they weren't serious. I need more coffee before reading exceptionally funny posts :)
Introducing my new #rstats package {kitchensink}

Not sure what the right model to fit is? Should you allow random intercepts, slopes, both? What do Bayesian methods say?

Just call {kitchensink::throw} to fit every possible model and see how your results differ!
July 16, 2025 at 8:46 AM
Right, with the advent of the recent government whitepaper "Restoring Control Over the Immigration System" (which already has some pretty loaded language in the title), it's worthwhile looking a bit at some of the detail of the student section. It's some "interesting" statistics presentation.
May 13, 2025 at 12:26 PM
The report released today by the Tony Blair institute is one of the most cynical, least scientific, and most poorly-written reports I have ever seen about climate change. I'm not exactly surprised that there is no climate scientist willing to put their name on it anywhere, but I am disappointed.
April 30, 2025 at 8:24 AM
Reposted by Francis Windram
Emile Michels' first PhD paper published today. Amplification of Borrelia in ticks at pheasant-release sites – an intriguing example how non-native species can increase zoonotic disease risk through spillback. @uniexecec.bsky.social
onlinelibrary.wiley.com/doi/10.1111/...
The Release of Non‐Native Gamebirds Is Associated With Amplified Zoonotic Disease Risk
Spillback is potentially an important mechanism by which non-natives contribute to zoonotic disease emergence. We capitalise on quasi-experimental releases of non-native pheasants (Phasianus colchicu...
onlinelibrary.wiley.com
April 21, 2025 at 11:23 AM
Reposted by Francis Windram
"Mean daily temperatures predict the thermal limits of malaria transmission better than hourly rate summation" new paper now out in NatComm, led by @martashocket.bsky.social
doi.org/10.1038/s414...
April 11, 2025 at 11:33 AM
Reposted by Francis Windram
New paper out! A common computational approach to predict organismal fitness and distributions in the field could vastly overpredict the potential range of thermal suitability for malaria transmission relative to performance characterized at constant temperatures: www.nature.com/articles/s41...
Mean daily temperatures predict the thermal limits of malaria transmission better than hourly rate summation - Nature Communications
Malaria transmission is sensitive to temperature and models of malaria typically account for daily fluctuations in temperature through a ‘rate summation’ approach. Here, the authors conduct experiment...
www.nature.com
April 11, 2025 at 10:39 AM
Reposted by Francis Windram
#Tidyverse Tip: If you find yourself writing the same mutation (i.e., #dplyr::mutate()) for several columns, there’s a better way! dplyr::across() allows you to apply a function to multiple columns easily. For example, to scale all numeric columns:
df %>% mutate(across(where(is.numeric), scale))
April 3, 2025 at 3:22 PM
Reposted by Francis Windram
Why I love OneDrive, part 78.

My local folder is called

/Users/koren/OneDrive\ -\ Central\ European\ University\ \(CEU\ GmbH\ Hungarian\ Branch\ Office\)/

Luckily, I can symlink.
March 25, 2025 at 6:56 AM
Reposted by Francis Windram
I’ve long used FiveThirtyEight’s interactive “Hack Your Way To Scientific Glory” to illustrate the idea of p-hacking when I teach statistics. But ABC/Disney killed the site earlier this month :(

So I made my own with #rstats and Observable and #QuartoPub ! stats.andrewheiss.com/hack-your-way/
March 20, 2025 at 6:30 PM
This is the real and proper solution to the previous problem I posted, and today I was reminded why reading the documentation regularly is very very important, even when you think you know it. Now if you'll excuse me I have some package error handling to rework.
If you’re wrapping errors, you’re better off using withCallingHandler to avoid this problem in the first place. I also recommend that you pass along the error condition to the parent arg of cli_abort and friends
March 20, 2025 at 10:43 PM
Reposted by Francis Windram
The redquack 📦 lets REDCap and DuckDB flock together.

It batches API requests by record ID using the awesome httr2 📦 . Features include resuming incomplete transfers, converting column types, tracking progress, and logging operations in the database.

Headed to CRAN! 🦆

github.com/dylanpieper/...
March 20, 2025 at 8:59 PM
If you're catching errors in #rstats and stopping using tryCatch and cli_abort (or rlang::abort), you may encounter something like this "Error in `value[[3L]]()`".

This isn't helpful for finding where something went wrong, you don't know what actually threw the error. But there's an easy fix!
March 20, 2025 at 12:07 PM
I just created a silly little tool for finding stats about those following you on Bluesky!

Returns who follows you, and basic stats about their own profile. A really fun way to start playing with the bsky public api! #rstats #httr2 #bsky

gist.github.com/fwimp/67a20b...
Bluesky Follower Information Finder
Bluesky Follower Information Finder. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
March 19, 2025 at 2:28 PM
Recently I've been playing with the "slider" package for sliding windows #rstats

It's exceedingly useful for generating aggregated summaries over a dataset (i.e. weekly means)
March 19, 2025 at 11:00 AM
Reposted by Francis Windram
okay I think I've got it
March 18, 2025 at 1:19 AM
Reposted by Francis Windram
Trying out dplyr::consecutive_id() for a project today. #rstats

It generates a unique identifier that increments every time a variable (or combination of variables) changes.
March 18, 2025 at 8:39 PM
Reposted by Francis Windram
Hi there, my student is making a survey about the use of R packages in Ecology, could you please spend two mins on filling it 🥹 Very appreciated! And if you could spread it further (RT), that would be just awesome. ❤️

docs.google.com/forms/d/e/1F...
Exploring R Package Usage in Academia
I am running a quick survey to find out which R packages academics use the most in their research and teaching. The goal is to see which tools are essential, spot any gaps, and maybe even discover som...
docs.google.com
March 14, 2025 at 10:15 AM
Just started out work on an R Package Developer starterpack, and would love to keep expanding it and making it more diverse. Any suggestions on people to add?
March 5, 2025 at 1:14 PM
🧵 Now it's time for another R thread. So let's talk about the .data pronoun from rlang/dplyr. #R #dplyr #rlang
March 5, 2025 at 11:55 AM