An R User’s Guide to Other Programming Languages
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.
Emily Riederer put together a fantastic series on the “Rgonomics” of Python:
The first installment is a great way to learn about Python generally
The second installment on
polars
is a great primer onpolars
which is a great framework for data wrangling.The third installment is a more general primer on Pythonic concepts like list comprehension.
Christoph Scheuch’s TidyIntelligence Blog put together a couple of great comparison blog posts:
For data visualization: ggplot2 vs matplotlib and ggplot2 vs plotnins
For data wrangling: dplyr vs pandas, dplyr vs polars, dplyr vs siuba and dplyr vs ibis
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.
I have created a “Web Dev for R Users” video series, that will get you started:
Other than that, I found the Outstanding User Interfaces with Shiny book by David Granjon fantastic.
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 HorstThere 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)