Skip to content
Datanovia

R & Python · reproducible by default

Learn R & Python data science where every answer runs

Beautiful, interactive lessons across data visualization, biostatistics, machine learning, and the life sciences — all reproducible, right in your browser. Meet Prova, the AI tutor the runtime keeps honest.

// 2.5M+ learners reached across our content each year

dose-response.R live
library(ggplot2)
ggplot(df, aes(dose, response)) +
geom_col(fill = "#3a86d4") +
theme_minimal()
#> rendered · reproducible ✓

4.52 out of 5 · 180 reviews of our 8 books

What Pro unlocks

Free gets you the answer. Pro gives you leverage.

The canonical, runnable answer is always free. Pro turns it into work on your own data — and a credential that proves it.

the runtime is the judge

Run it on your data

Prova reads the shape of your columns, writes and runs the code on them in your browser, and shows you the plot — grounded in our reproducible corpus. The loop a generic chatbot structurally can't do.

  1. Prova sees your columns — names, types, and ranges only.

  2. It writes and runs real R on your own data, grounded in our lessons.

  3. The plot renders in your browser — a result you can paste into your paper.

0 bytes uploaded · it runs on your machine

Prova · example data
# Prova wrote this on your columns. Let the runtime decide.
tt <- t.test(len ~ supp, data = ToothGrowth)

boxplot(len ~ supp, data = ToothGrowth,
        col = c("#e6f0fb", "#c9e0f6"), border = "#3a86d4",
        xlab = "Supplement", ylab = "Tooth length",
        main = "Tooth growth by supplement")

# jitter the raw points + mark the group means (publication style)
stripchart(len ~ supp, data = ToothGrowth, vertical = TRUE,
           method = "jitter", add = TRUE, pch = 19, col = "#3a86d466")
means <- tapply(ToothGrowth$len, ToothGrowth$supp, mean)
points(seq_along(means), means, pch = 18, cex = 1.8, col = "#1e5fa8")

mtext(sprintf("Welch t-test:  p = %.3f", tt$p.value), col = "#1e5fa8")
Nothing boots until you click — then this code runs for real, in your browser.

Runtime-graded badge

  • Data Visualization
  • Biostatistics
  • Machine Learning
  • Clinical Programming

Included with Pro

Skills Practice — earn a badge by running code

Every badge is earned by running code, not clicking through videos — a shareable, runtime-graded Skills Practice badge across our core pillars.

The runtime is the judge · earned, not granted

no installs · zero setup

It runs in your browser

webR, Pyodide, shinylive and Quarto Live execute real R & Python client-side. Reading becomes doing — instantly.

webRPyodideshinyliveQuarto Live
# your browser is the runtime
x <- rnorm(100)
hist(x, col = "#3a86d4")
executed locally
Why is my ANOVA assumption failing?
Your residuals aren't normal — here's the Shapiro test and a fix you can run now. backed by a reproducible run

the runtime is the judge

Meet Prova — the tutor that can't bluff

Ask anything. Every explanation is backed by code that actually runs — no hallucinated statistics, no unverifiable claims.

180 reviews of our 8 books

What readers say

4.52out of 5
  1. 5 stars: 121 reviews, 67.2%
  2. 4 stars: 44 reviews, 24.4%
  3. 3 stars: 8 reviews, 4.4%
  4. 2 stars: 1 review, 0.6%
  5. 1 star: 6 reviews, 3.3%

92% rated 4 stars or better, across our 8 books.

My field is functional genomics, and i have found this site just recently. This is an absolutely terrific resource for cluster analysis using R. Great way to get some insights into ggplot2 too. Thank you very much!
Sergey Kalachikov· Columbia University @ NYC
Datanovia website is really incredible. They understand the tools relevant to modern advanced scientific analysis--but teach it at the level of someone trying to build these skills from scratch. Incredible attention to detail.
BrandonUSA
Datanovia is excellent, it’s extremely useful. It boasts very good techniques, elegant codes, and is well-written and organised. It’s one of the best of its kind.
Zahra HFrance
I have never used any machine learning things before, so Datanovia was extremely useful in introducing the basics of working with clustering in R! What a nice and "down to earth" way of explaining such complex things! Thank you again!
Kate

Learn data science the way the work actually happens

Free to start. Pro unlocks depth, projects, and the full interactive experience.