An R User’s Guide to Other Programming Languages

This blog post is a collection of resources that I find helpful for learning other programming languages from the perspective of someone who comes from the R world. Some of these resources are mine. Some are blog posts that I found online.
Author

Albert Rapp

Published

August 13, 2024

Real-world problem often happen at the intersection of many areas. For example, maybe you want to build a web app for easier data ingestion. As an R user that’s no problem. You can easily dabble into the world of web development using the fantastic Shiny package.

But if you’re in that world, you will soon reach the boundaries of where using only R code can get you out of trouble. You will soon find that any meaningful Shiny app will have to sooner rather than later deal with problems that happen at the intersection of R and traditional webdev languages like HTML, CSS & JS. That’s where it helps to know a bit about these languages.

Similarly, you may want to incorporate a cool machine learning model into your app that’s only available in Python. In that case, knowing how to handle Python can be beneficial. Even if you do most of your scripting in R.

Or if some part of your R analysis is slow, it can be helpful to refactor some of your code in a compiled programming language like C++. That way, some of your bottle-neck functions can become blazingly fast all of a sudden.

And there are lots more examples where knowing your way around other programming languages can be really helpful. No one is saying that you need to give up R and become an expert in the other languages, though. You can make great progress by just knowing the basics of a language and combining that with your programming knowledge that you have already acquired through R programming.

In that spirit, this collection of resources is supposed to help you ease your way into other programming languages. The goal here is to highlight resources that will give you a gentle nudge towards these other languages when coming from R. Some of the resources I have created, some of them are things I’ve collected from the wider R community. If I forgot one of your favorite resources, don’t hesitate to put them into the comments.

Python

Probably the most popular data science programming language currently is Python. It’s particularly strong in the ML field.

HTML & CSS

If you ever want to make your {gt}/{flextable}/{reactable} tables or your Shiny app or your Quarto documents look nice, then there’s no way around these two languages. A lot of the things that these languages can offer you, can be practiced from within R using the {htmltools} package.

Javascript

Javascript (JS) is another language that is used everywhere within web development. If HTML & CSS make your documents, tables and apps look nice, JS makes them interactive.

  • A nice way to dip your toes into the JS waters comes via Observable plots. They give you a nice way to to create charts using the grammar of graphics (just like {ggplot2}). A nice side-by-side comparison can be found in this fantastic guide by Allison Horst

  • There is also a nice video series for Observable plots.

  • A nice and free resource is also the JavaScript for R book by John Coene

  • If you want to take a deeper dive into web development with Javascript, you may also enjoy the free “Deep Dive Into Modern Web Development” course (even if it’s not R centered)


Enjoyed this blog post?

Here are three other ways I can help you:

3 Minutes Wednesdays

Every week, I share bite-sized R tips & tricks. Reading time less than 3 minutes. Delivered straight to your inbox. You can sign up for free weekly tips online.

Data Cleaning With R Master Class

This in-depth video course teaches you everything you need to know about becoming better & more efficient at cleaning up messy data. This includes Excel & JSON files, text data and working with times & dates. If you want to get better at data cleaning, check out the course page.

Insightful Data Visualizations for "Uncreative" R Users

This video course teaches you how to leverage {ggplot2} to make charts that communicate effectively without being a design expert. Course information can be found on the course page.