Yayyy!!! I’m so glad it worked for you as well!! That’s so exciting.
Posts by sarah
Added more features, could tell there was a lot of overlap in functions, used the prompt again and Claude made a detailed refactoring plan that fully restructured the codebase, created general functions, and standardized the components that use them, instead of just surface level refactoring.
I like to use Ivan Sutherland & Scratchpad as an example, but YMMV. Trying to make a Rust tool, ran /simplify until Claude ran out of suggestions. Then started a new session with the aforementioned framing and he fixed bugs & cleaned logic while cutting ~100 lines overall.
I'm having insane success rates when I ask Claude to pretend to be a god-tier programmer from the 1960s with limited computer power.
I hope to help clean up & flesh out the R skills Jeremy put together, just been a bit busy recently and haven't set aside the time.
I also found a Skill for optimizing performance to be extremely useful. It outlines how to use profvis and benchmark to compare code, so Claude knows for sure that a recommended change improves speed. Also, a skill for rlang is also very helpful for clean tidyverse functions.
That being said, I found skills to be extremely useful in making sure Claude is up-to-date with R. For instance, I had some functions break with the most recent stringr update, so I provided the updated docs to Claude, asked it to update its Skill, then it fixed the problem in one shot.
Sorry for taking so long getting back. Ngl, I rarely use Claude for R. For my work, I often code in R as quickly as I can type out the prompt and correct any issues (and I just find R a pleasure to write). I also found Opus 4.5 much better about using the tidyverse (haven't tested R with 4.6 yet).
I also experienced this and made a CLAUDE.md file last year to help with some of the basics, and @jeremy-data.bsky.social just turned it into Claude Skills! They're in his repo for now but plans to add them to Posit's public skills repo! github.com/jeremy-allen...
If you don't want Claude to load all this great #RStats content for each session, try asking Claude Code to deconstruct this content into distinct skills. On first pass it did not add required YAML headers, so needed second pass with those instructions. Here are the skills I ended up with.
Rising rents are leaving households with less income to pay for other needs, and inflation has also pushed up the cost of other necessities.
Our new paper finds that, after paying for rent, 2/3 of working-age renters cannot afford their basic needs.
www.jchs.harvard.edu/blog/two-thi...
I am super hyped to finally share the first release of plumber2 with all of you. This has been the center of my attention for a big part of 2025 and I hope you'll find it a worthy update to the venerable plumber package.
The blog post will tell you more
#rstats
Thank you for @ ing me! I appreciate it!
Thank you for your response and apologies for the delay in getting back to you. I was hoping to put in a PR but I've been swamped recently. Here is what I have so far: gist.github.com/sj-io/f1f3b2... made by combining the _variables.scss under scss:defaults and _bootswatch.scss under scss:rules
(also informally requesting Quarto add Bootswatch's Brite theme. It looks so sick, I had to manually add it and test it out)
Do you ever make a really nice table and then spend like 30+ minutes just clicking around?
reactable has gotta be my fav R table package. This table has just shy of 50K rows with grouping, conditional formatting, filtering and sorting. Renders and runs super fast. #rstats
Good suggestion on the blog post! I've started to put one together. Quick answer: I downloaded md (or rmd/qmd) files from github, saved them in a folder, then opened Claude and basically said "we're having too many R errors, esp w/ the tidyverse, please summarize these in a way you can remember"
Late to the party but I'm constantly working with lookup tables and this would be huge for me. I've been using a homemade solution but I would love these functions, esp w/ the error handling. Can't wait to use these and thank y'all for adding them! bsky.app/profile/sara...
I saw others suggesting this idea but I hadn't seen anyone share a CLAUDE.md or similar file. This might also be fixed if you use the API and MCP, but I'm already paying for Claude Code.
also there's no ggplot, lubridate in the file but you can always ask Claude to update the file with new docs.
The file is long, but large chunks can probably be removed depending on your use. I needed help with package development, so I fed it a bunch of rlang pages. Also added things I'm less familiar with, like vctrs and s7, so maybe it can help me improve in the future. (& lmk if you see something wrong)
I placed this into a project I was trying to debug and the results were 1000x better, truly night and day. I'm no longer having to teach it R while trying to work. It can make modern functions in one attempt, benchmark code, add parallelization.
I gave it only pages from official tidyverse docs, vingettes, blog posts, style guide, and excerpts from R for Data Science and Advanced R. I asked it to not only summarize the files but also make sure it knew *when* to use tidyverse over base R.
I was loving Claude Code... until I tried it with #rstats. Constant errors, wouldn't use the tidyverse even when asked, "optimized" functions were slower.
Frustrated, I started a session just to teach R to Claude and summarize what it learned into a CLAUDE.md file gist.github.com/sj-io/3828d6...
I also wrapped this into a function for one of my packages, so I can just pass on two vectors of the same length to str_replace_all without creating a named vector manually beforehand
I don't know if it fits your use case, but str_replace_all can replace with a named vector. You might need to add "\\b" around the input to make sure it doesn't match partials, or wrap it with "^" and "$" for an exact match.
Hot off the press! Annual eviction report here:
haha switching it around to "r gt" works for me
Median age of homebuyers just hit a new record high of 56
(Via Torsten Slok)