Christoph Scheuch's Avatar

Christoph Scheuch

@christophscheuch.bsky.social

Expert in Reproducible Research & Scalable Data Workflows | Founder at tidy-intelligence.com | Co-creator of tidy-finance.org & econdataverse.org | Data Editor at sfs.org | Lecturer at hu-berlin.de

2,576 Followers  |  289 Following  |  204 Posts  |  Joined: 20.08.2023
Posts Following

Posts by Christoph Scheuch (@christophscheuch.bsky.social)

I see rm(list = ls()) a lot in my role as a data editor, and I usually recommend removing it. I’ve never really understood the appeal, especially as someone who obsessively restarts sessions πŸ€·β€β™‚οΈ

06.01.2026 13:29 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Indeed, Positron has such a restart button and Iβ€˜m a frequent user ✌️

06.01.2026 13:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I didn’t know that unknown functions are passed along, so I always used sql() - thank you for the reference!

20.11.2025 05:26 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
dplyr code with duckdb functions in all caps

tbl_files <- tbl(db, "csvs") |>
  # CAPS for duckdb functions
  mutate(
    # $speaker has directory names with the patterns:
    # - `[speaker]-[listener]` (listener specific data)
    # - `[speaker]` (default version)
    # so compute appropriate $speaker, $listener values
    dir_parts = speaker |> STRING_SPLIT("-"),
    speaker = dir_parts |> LIST_FIRST(),
    listener = dir_parts |> LIST_LAST(),
    listener = ifelse(listener == speaker, "default", listener)
  ) |>
  select(speaker, listener, file, label, logprob, model_name, model_commit)

dplyr code with duckdb functions in all caps tbl_files <- tbl(db, "csvs") |> # CAPS for duckdb functions mutate( # $speaker has directory names with the patterns: # - `[speaker]-[listener]` (listener specific data) # - `[speaker]` (default version) # so compute appropriate $speaker, $listener values dir_parts = speaker |> STRING_SPLIT("-"), speaker = dir_parts |> LIST_FIRST(), listener = dir_parts |> LIST_LAST(), listener = ifelse(listener == speaker, "default", listener) ) |> select(speaker, listener, file, label, logprob, model_name, model_commit)

it never ceases to amaze me that I can refer to duckdb functions in R expressions as though they were R functions and everything gets translated to SQL

19.11.2025 19:47 β€” πŸ‘ 31    πŸ” 5    πŸ’¬ 3    πŸ“Œ 0

What kind of sorcery is this?! I love it πŸ™

19.11.2025 20:51 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Last week I posted about using structured output in {ellmer} to turn text into data, but a friend pointed out that the LLM had mixed up the words "conscious" and "consciousness" in its summary.

So how can we fix that? 🧡(1/3)

#rstats #llms #ai

18.11.2025 10:08 β€” πŸ‘ 8    πŸ” 3    πŸ’¬ 2    πŸ“Œ 0
Preview
ellmer 0.4.0 ellmer 0.4.0 includes important lifecycle updates, new Claude features (caching, file uploads, web tools), OpenAI improvements, and enhancements to error handling, pricing tracking, and security.

ellmer 0.4.0 is out now! New features include Claude caching & file uploads, support for newer OpenAI responses API, web search tools, and better security. Read more at tidyverse.org/blog/2025/11... #rstats

18.11.2025 06:38 β€” πŸ‘ 40    πŸ” 11    πŸ’¬ 0    πŸ“Œ 0

- Ultimate R Bundle: 7 academic style courses taught by top instructors including Dr. Paul Sabin, @niccrane.bsky.social , and @christophscheuch.bsky.social and working professionals in sports and academia, including a preorder on our AI/LLM course releasing in 2026.

13.11.2025 18:43 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Fantastic news! So to add the llm.txt to my site, which is built, rendered and deployed via GitHub Actions, I just switch to the new version in the workflow or do I need to explicitly call build_llm_docs() after build_site_github_pages()?

06.11.2025 17:56 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

And a Makefile to orchestrate the execution order of different reports and their potential dependencies ✌️

29.10.2025 21:22 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Announcing imfapi: User-Friendly Access to IMF Data in R New IMF API, new IMF API R library β€” part of the econdataverse initiative

New R package I developed as part of the `econdataverse` project for accessing macroeconomic data from the International Monetary Fund's IMF Data API was just published to CRAN. πŸ₯³ Writeup here: open.substack.com/pub/modeling...

25.10.2025 19:51 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

You can still publish to shinyapps.io from Positron using the rsconnect package

12.10.2025 06:59 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Screenshot of first page of slidecrafting-book.com website

Screenshot of first page of slidecrafting-book.com website

I'm exited to announce a new resource about making slides with quarto and revealjs. This book is the combination of all the work I have done in this area, reordered and polished up

There isn't a lot of new information yet, but this format allows me to add more easily

slidecrafting-book.com
#quarto

24.09.2025 16:12 β€” πŸ‘ 183    πŸ” 66    πŸ’¬ 11    πŸ“Œ 6
Preview
SynergiZing ML & LLMs in R β€” tidymodels, RAG, Shiny | Athlyticz Waitlist open for Athlyticz’s async R course: tidymodels + LLMs (RAG, tool-calling, evals) and Shiny/vetiver deploymentβ€”by Nic Crane & Christoph Scheuch.

We’re thrilled to have @niccrane.bsky.social and @christophscheuch.bsky.social join our team to co-develop our flagship async course, SynergiZing ML & LLMs in R.

We’ve also welcomed @albertrapp.bsky.social to lead our monthly membership track.

πŸ‘‰ Early access updates here: athlyticz.com/ai-signup

16.09.2025 12:45 β€” πŸ‘ 4    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
Preview
ggplot2 4.0.0 A new major version of ggplot2 has been released on CRAN. Find out what is new here.

I am beyond excited to announce that ggplot2 4.0.0 has just landed on CRAN.

It's not every day we have a new major #ggplot2 release but it is a fitting 18 year birthday present for the package.

Get an overview of the release in this blog post and be on the lookout for more in-depth posts #rstats

11.09.2025 11:20 β€” πŸ‘ 850    πŸ” 281    πŸ’¬ 9    πŸ“Œ 51

Another challenge is being obsessive about function names and consistency since in R we typically load everything into the same namespace. In Python, I’d probably take a different approach, since it’s more common to organize things into (sub-)modules.

11.09.2025 17:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Great idea for a post! The tricky part is that you often figure things out along the way (e.g. column / parameter names), which then forces changes in other packages (i.e. breaking changes / soft deprecations). A meta-package that loads the rest is easy to set up thanks to the tidyverse πŸ™

11.09.2025 17:14 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Easily Load and Install the EconDataverse The EconDataverse is a universe of open-source packages to work seamlessly with economic data. This package is designed to make it easy to install and load multiple EconDataverse packages in a single step. Learn more about the EconDataverse at <https://www.econdataverse.org>.

Link to package docs: tidy-intelligence.github.io/r-econdatave...

11.09.2025 11:56 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Big milestone: {econdataverse} is now on CRAN #rstats. Install & load multiple #EconDataverse packages in one step, just like the {tidyverse} πŸ₯Ή

11.09.2025 11:56 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

Wasn’t it some Excel mess? Like hitting row limits and wrong references. Guess the first step would be a code-first approach 🫠

07.09.2025 08:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
nanonext 1.7.0 nanonext is a communications and concurrency toolbox that facilitates fast, powerful and reliable data exchange in polyglot data science workflows.

tidyverse blog: Breaking down language barriers in data science

nanonext is a messaging and concurrency toolkit, connecting R to polyglot data science pipelines involving modules written in Python, Rust, Go and C++ etc.

www.tidyverse.org/blog/2025/09...

#RStats #tidyverse

02.09.2025 18:37 β€” πŸ‘ 32    πŸ” 7    πŸ’¬ 1    πŸ“Œ 0
Post image

Looking forward to my first pure #Python conference ever at PyData Berlin 🐍

If you are interested in getting to know Shinylive and WebAssembly in Python, feel free to join my talk tomorrow at noon titled β€žBuilding Reactive Data Apps with Shinylive and WebAssemblyβ€œ ✌️

01.09.2025 07:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Analyzing Census Data with Data Commons

The first vignette offers a detailed look at what’s possible with {datacommons} in #rstats: tidy-intelligence.github.io/r-datacommon...

29.08.2025 10:22 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - tidy-intelligence/r-datacommons: Client for the Google Data Commons API V2 Client for the Google Data Commons API V2. Contribute to tidy-intelligence/r-datacommons development by creating an account on GitHub.

Another new CRAN release with @tealemery.bsky.social πŸ’ͺ {datacommons} is a wrapper for the Google Data Commons API v2, which provides unified access to global public stats in a knowledge graph, thus reducing data-wrangling pain.
Feedback as always very welcome πŸ™
github.com/tidy-intelli...

29.08.2025 10:20 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Working hard at more R packages πŸ˜…

25.08.2025 10:16 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - Teal-Insights/r-imfweo: Seamless Access to IMF World Economic Outlook (WEO) Data Seamless Access to IMF World Economic Outlook (WEO) Data - Teal-Insights/r-imfweo

New #RStats package on CRAN: {imfweo} (w/ @tealemery.bsky.social) gives easy access to IMF’s World Economic Outlook. It's part of the #EconDataverse, helping economists + financial professionals work with sovereign-level data. Feedback welcome ✌️

github.com/Teal-Insight...

25.08.2025 09:00 β€” πŸ‘ 7    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
CRAN: Package imfweo Provides tools to download, process, and analyze data from the International Monetary Fund's World Economic Outlook (WEO) database &lt;<a href="https://www.imf.org/en/Publications/SPROLLs/world-economic-outlook-databases" target="_top">https://www.imf.org/en/Publications/SPROLLs/world-economic-outlook-databases</a>&gt;. Functions support downloading complete WEO releases, accessing specific economic indicators for selected countries, and listing available data.

New CRAN package imfweo with initial version 0.1.0
#rstats
https://cran.r-project.org/package=imfweo

22.08.2025 14:02 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Happy to announce ✨quarto-revealjs-editable✨

This fully supersedes the imagemover extension, as I back then didn't realize the potential. You can now also move, resize, change font size and alignment for text in your slides

github.com/EmilHvitfeld...
#quarto #slidecrafting

20.08.2025 17:38 β€” πŸ‘ 117    πŸ” 36    πŸ’¬ 10    πŸ“Œ 8
An arrow with a LaTeX equation

An arrow with a LaTeX equation

Trigonometric functions and a unit circle

Trigonometric functions and a unit circle

A bivariate change model with structured residuals

A bivariate change model with structured residuals

A hierarchical model of cognitive abilities

A hierarchical model of cognitive abilities

Now on CRAN, ggdiagram is a #ggplot2 extension that draws diagrams programmatically in #Rstats. Allows for precise control in how objects, labels, and equations are placed in relation to each other.
wjschne.github.io/ggdiagram/ar...

20.08.2025 10:43 β€” πŸ‘ 180    πŸ” 73    πŸ’¬ 10    πŸ“Œ 9