background picture with networks
Subscriptions open

Turn messy R scripts into

An interactive mini course helping R developers be So. Much. More. efficient at data analysis.

YHTaught by Yan Holtz

The struggle is real

For the 10th time you open your script called my_analysis_final2.R.

You're ready for a last run, creating a few graphs that you will have to copy paste to your report, together with some crucial statistical test results.

๐Ÿ˜ฑ Bummer!

Did you really write this? It is barely readable. There are no comments. Some lines are so long you can't see their ends. It basically looks like a labyrinth of duplication, making even the smallest changes an agonizing ordeal.

But wait ๐Ÿค”. Where is the awesome piece of code you wrote the other day? Perhaps in another version of the script...

Nevermind, let's email those results to the team, it is not too bad already. At least you did not lose your script like last time.

Wait.. No!

You run the analysis on data_clean.csv instead of data_final.csv. Results are all wrong! ๐Ÿ™ˆ

There is an easier way!

I remember those good old days so well.

But some tools can make your life 100x easier ๐ŸŽ‰

Quarto transforms your code in a stunning report. HTML widgets integrate interactive charts in it. Git tracks all your changes.Github hosts your work and transforms it in a website for free.

In this mini course, I provide you with an efficient pipeline for your daily data analysis work with R. An elixir of the best tools, tips and tricks.

I promise there won't be any coming back.

background picture with networks

๐Ÿ”ฅ Let's build a

Productive R Workflow

Get a Clean, Interactive, Reproducible, Online report


Fork the project. Click 1 button. โ†’ Everything runs again.


Use the theme provided by the course. Plus some web dev tips.


Code and report are available for free on the web. For free.


Include tabs, interactive charts, links, maps, and more.

๐ŸŽฎ Interactive learning experience ๐ŸŽฎ

This course is not a book or a set of boring videos! I tried to make learning fun and interactive. For instance, check your R knowledge with this quizz! ๐Ÿ˜€.

What is the primary use of ggplot2?

Perform statistical computations.
Create publication-quality visualizations.
Manage and manipulate data frames.
Interface with databases.

What is the purpose of StyleR?

It adds additional styling options to ggplot2 graphs.
It is used for creating styled R Markdown documents.
It automatically styles R code according to specified guidelines.
It is a package for theming Shiny applications.

In a Quarto document, how do you create an executable R code chunk?

```{r} ... ```
```[r] ... ```
<r> ... </r>
<code lang='r'> ... </code>

In R, what is the correct syntax to define a function named calculateSum that takes two arguments and returns their sum?

function calculateSum(x, y) { return x + y; }
def calculateSum(x, y): return x + y
calculateSum <- function(x, y) { return(x + y) }
function calculateSum(x, y) = x + y

What is the Tidyverse?

An R package for statistical analysis.
A collection of R packages designed for data science that share common philosophies.
A new programming language based on R.
A graphical user interface for R.

Name three core principles that the Tidyverse packages adhere to.

Consistency, readability, and usability.
Complexity, dependency, and variety.
Speed, automation, and scalability.
Randomness, flexibility, and modularity.

How do you install a package from GitHub in R?

install.packages(github: 'username/repository')

Which package in the Tidyverse is primarily used for data manipulation?


In a Quarto document, how do you link to an external CSS file?

<link rel='stylesheet' href='path/to/style.css'>
css: 'path/to/style.css'
style: 'path/to/style.css'

How do you update your local repository to match the remote repository in Git?

git update remote
git refresh
git pull
git download

What shortcut is used to run a line of R code in RStudio?

Ctrl + Enter
Alt + R
Shift + Enter
Ctrl + R

How do you write text in bold in Markdown?

Using <b>...</b> tags
Enclosing text in *asterisks*
Enclosing text in **double asterisks**
Using the :bold: syntax

Is Shiny required to create a document with interactive graphs?

Yes, Shiny is always required.
No, there are other options like ggiraph or plotly.
Only if the graphs are complex.
Shiny is not compatible with interactive graphs.

Do you need to pay to share your data analysis report via GitHub?

Yes, GitHub charges for hosting data reports.
No, GitHub offers free repositories for data sharing.
Only for private repositories.
Sharing data reports is not allowed on GitHub.

Is it possible to read an xlsx file in R without converting it to CSV format?

No, conversion to CSV is mandatory.
Yes, using packages like readxl or openxlsx.
Only with special software outside of R.
Reading xlsx files is not supported in R.

Is building an interactive graph in R typically a complex task requiring at least 100 lines of code?

Yes, it always requires extensive coding.
No, it can be achieved with fewer lines using specific packages.
Interactive graphs cannot be created in R.
It depends on the complexity of the graph.

Should an R script always begin with the setwd() function?

Yes, it's a mandatory practice.
No, it's not recommended to use setwd() in scripts.
Only if the script is run on multiple machines.
setwd() is not a function in R.

What role does CSS play in relation to Quarto documents?

CSS is used for data analysis in Quarto.
CSS enhances the visual appearance of Quarto documents.
CSS is irrelevant to Quarto.
CSS is used to write R code in Quarto.

What is GitHub Desktop?

A cloud storage service provided by GitHub.
A graphical interface for managing Git repositories.
A text editor developed by GitHub.
An operating system based on GitHub.

Is RStudio required to use Quarto?

Yes, RStudio is necessary for Quarto.
No, Quarto can be used independently of RStudio.
Quarto only works with RStudio Cloud.
Quarto and RStudio are the same thing.

๐Ÿ‘‹ Hi! I'm Yan Holtz.

Senior Software Engineer in โค๏ธ with educational content.

A picture of Yan Holtz

With over a decade of hands-on experience in data analysis and software engineering, I've had the privilege of working in various tech companies and research labs globally.

You might recognize me from my widely-visited educational platforms like the R, Python, D3.js, and React Graph Galleries, as well as my award-winning projects and

Frequently, people approach me seeking guidance on their R journey. This course is my comprehensive, well-structured response, born from a broad and deep understanding of the field.

Spend just a few hours of your time with me! I guarantee that the productivity gains will quickly offset the initial investment ๐Ÿ”ฅ.

A picture of Vincent Guyader

Yan's recent talk showcased his R programming course, brilliantly tailored for beginners. Leveraging his deep expertise in the R ecosystem and common challenges, the course is a perfect launchpad to boost productivity in R.

Vincent Guyader

CTO of ThinkR

๐Ÿ”ฅ Early Access

The course is currently in development, with a new lesson set to be released each week. Price will double upon completion of the entire course!

background picture with networks



Early Access

Price will double upon course completion

Lifetime Access
Discord community
Interactive learning experience
1 new lesson per week
Support course development
Personalized feedback on Discord
A picture of Vincent Guyader

R is a fantastic but permissive language; it's hard not to make errors in reproducibility. What I loved about Yan's talk is his way of simply presenting the best R practices that can be game-changing for your statistical work
even if you are a beginner!

Marylene Henry

Project Leader, French National Institute of Statistics

Frequently asked questions