Nic Crane
@niccrane
Independent R consultant. Apache Arrow PMC Member & #rstats 📦 maintainer. Arrow course launching early 2026: More of my stuff at
This week's productive procrastination involved getting nerd-sniped by seeing if I could get real-time speech-to-text working in Shiny with the Speechmatics realtime API (my speechmatics #rstats 📦 published today on CRAN currently supports their batch API). This was fun though needs lots of work!
Next to Loch Ken for the first time in 20 years. Different textures of smoke. First camp of the year. Perfection.
It's a CORS thing! 🤖 suggested to use "jsDelivr - proxies GitHub repos with proper CORS headers" - and now I read the data in!
and `dplyr::recode_values()`, `dplyr::replace_values()`, and `dplyr::replace_when()`:
arrow now supports some of your favorite new dplyr verbs, such as filter_out():
Almost exactly 8 years after first trying it in Thailand and falling in love with the dish, finally got around to making mango with sticky rice! 😋 Crispy mung beans are *essential* to the texture and so I'm hesitant to order it in a restaurant in the UK/US as most I've been to have skipped it.
We've added support for stringr::str_ilike() for case-insensitive pattern matching.
Tool calling lets LLMs run R functions; in this example I let an LLM ask my R session to check the latest {ellmer} updates by scraping the news page and when I ask the LLM "what's new in ellmer?", it works with what comes back. {ellmer} website: ellmer.tidyverse.org #rstats #llms #ai #datascience
I love "structured output" as a way of extracting data from text as data frame. 🎯 Image shows using the {ellmer} package and how using type_array(type_object(...)) automatically returns a data frame in R 🔧 {ellmer} website: ellmer.tidyverse.org #rstats #llms #ai #datascience
RAG doesn't guarantee reliability 🤔 Built a RAG chatbot for a course & tested the same question+model three times with {vitals} - one run got it wrong. ❌ This is why evals matter: catch inconsistencies you'd miss manually. 🔍 vitals.tidyverse.org #rstats #llms #ai #datascience
Woke up to snow and abnormally cold weather for the UK; -6°C! It's a this kinda hat kinda day!
Working on Arrow in Positron and PR comments are showing up inline! 😍 OK, I'd been a bit hesitant to move away from RStudio as I was used to it, but this is a game changer! I know this is a VS Code extension thing not a Positron thing, but VSCode was a bit meh for R, so rarely used it! #rstats
This was just a toy example, but in a real data extraction pipeline, I'd be better off using pre-defined categories. Here, if I use `type_enum()` in my structured output, the LLM must choose from a specific list. (2/3)
Most updates were to docs and internals, but one feature to note is that we’ve added support for stringr::str_replace_na()
Great talk by @romainfrancois.bsky.social on how xeus-r makes it easier to work with #rstats in Jupyter; it's simpler than IRkernel and in combination with WebR opens up a ton of cool possibilities for in-browser Jupyter+R 🎉 #EARL2025
Seriously cool stuff from @shikokuchuo.net on mirai+ellmer+shiny+httr2 with otel for telemetry at Shiny in Production! You can use it to improve the performance of your Shiny apps by getting really granular information about it what's going on! #rstats
A delightfully concise history of #rstats from @colinfay.bsky.social at Shiny in Production 🔥
Apache Arrow will be 10 soon! 🥳 At the Arrow summit, PMC chair @enpiar.bsky.social reflects on the keys to longevity: ⭐ Social components are as important as the technical ⭐ Build relationships with other projects & make newcomers feel welcome & empowered ⭐ Culture is what makes the difference
If you've ever gotten stuck with {renv} you need to check out Shannon Pileggi's talk at #PositConf25 - learning soooo much! #rstats
Learning some really cool stuff about running parallel purrr locally with mirai at #PositConf2025
We’ve also added support for hms::hms() and hms::as_hms() for creating and working with time of day variables.