Weiter zum Inhalt

Jupyter und R Markdown: Notebooks mit R

Lerne, wie du R im Jupyter Notebook und im R Notebook von RStudio installierst, startest und nutzt – inklusive Tipps und Alternativen
Aktualisiert 18. Sept. 2026  · 15 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Wenn du an Data-Science-Problemen arbeitest, möchtest du vielleicht eine interaktive Umgebung einrichten, um deinen Code zu entwickeln und im Team zu teilen. Das geht ganz einfach mit einem Notebook. 

In anderen Fällen willst du vor allem den Workflow und die Ergebnisse deiner Analyse nachvollziehbar kommunizieren. Auch dafür eignet sich ein Notebook hervorragend, weil es Transparenz und Reproduzierbarkeit unterstützt.

Genau: Notebooks sind ideal, wenn du Fließtext mit reichhaltigen Elementen wie Grafiken, Berechnungen usw. kombinieren willst.

In diesem Tutorial geht es um Folgendes:

R und das Jupyter Notebook


Entgegen der landläufigen Meinung bist du in Jupyter nicht auf Python beschränkt: Die Notebook-App ist sprachagnostisch, du kannst also auch mit anderen Sprachen arbeiten. 

Es gibt grundsätzlich zwei Wege, R in Jupyter zu nutzen: über einen Kernel oder indem du eine R-Umgebung mit allen wichtigen Tools für den Einstieg in die Data Science einrichtest.

R in Jupyter mit dem R-Kernel ausführen

Wie beschrieben, ist die erste Möglichkeit die Nutzung eines Kernels. Eine vollständige Liste der verfügbaren Jupyter-Kernel findest du hier.

Um mit R zu arbeiten, musst du den IRKernel laden und aktivieren, damit er im Notebook zur Verfügung steht.

Zunächst installierst du einige Pakete. Achte darauf, dies nicht in der RStudio-Konsole zu tun, sondern in einem regulären R-Terminal, sonst erhältst du eine Fehlermeldung wie diese:

Error in IRkernel::installspec() :
Jupyter or IPython 3.0 has to be installed but could neither run “jupyter” nor “ipython”, “ipython2” or “ipython3”.
(Note that “ipython2” is just IPython for Python 2, but still may be IPython 3.0)
$ R

> install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))

Dieser Befehl fordert dich auf, eine Zahl für einen CRAN-Mirror einzugeben, um die benötigten Pakete zu installieren. Gib eine Nummer ein, dann läuft die Installation weiter.

> devtools::install_github('IRkernel/IRkernel')

Anschließend musst du den R-Kernel noch für Jupyter sichtbar machen:

# Install IRKernel for the current user

> IRkernel::installspec()

# Or install IRKernel system-wide

> IRkernel::installspec(user = FALSE)

Starte jetzt die Notebook-App mit jupyter notebook. Beim Erstellen eines neuen Notebooks erscheint R in der Kernel-Liste. 

Ein R-Essentials-Environment in Jupyter verwenden

Die zweite Möglichkeit, schnell mit R zu arbeiten, ist die Installation der R Essentials in deiner aktuellen Umgebung:

conda install -c r r-essentials

Diese „Essentials“ enthalten die Pakete dplyrshinyggplot2tidyrcaret und nnet. Wenn du die Essentials nicht in deiner bestehenden Umgebung installieren willst, kannst du mit folgendem Befehl eine neue Umgebung nur für die R Essentials anlegen:

conda create -n my-r-env -c r r-essentials

Öffne nun die Notebook-App, um mit R zu starten.

Du fragst dich vielleicht, wie du zusätzliche Pakete installierst, um dein Data-Science-Projekt auszubauen. Für den Start reichen die Essentials, aber oft brauchst du weitere Tools.

Du kannst entweder ein Conda-R-Paket bauen, zum Beispiel so:

conda skeleton cran ldavis conda build r-ldavis/

Oder du installierst Pakete direkt in R via install.packages() oder devtools::install_github (für Pakete von GitHub). Achte nur darauf, das neue Paket in die R-Bibliothek zu installieren, die Jupyter nutzt:

install.packages("ldavis", "/home/user/anaconda3/lib/R/library")

Wenn du mehr über Kernel oder das Ausführen von R in Docker wissen willst, schau dir diese Seite an.

R-Magie zu Jupyter hinzufügen

Ein großer Vorteil von Notebooks ist die Interaktivität. Die kommt vor allem durch sogenannte „Magic Commands“.

Damit wechselst du von Python zur Kommandozeile oder schreibst Code in anderen Sprachen wie R, Julia, Scala, …

Um von Python zu R zu wechseln, lädst du zunächst folgendes Paket:

%load_ext rpy2.ipython

Danach kannst du direkt mit R loslegen oder mit dem Magic-Befehl %R in deiner Analyse zwischen Python und R wechseln.

So funktioniert die R-Magic – ein kleines Beispiel:

# Hide warnings if there are any
import warnings
warnings.filterwarnings('ignore')
# Load in the r magic
%load_ext rpy2.ipython
# We need ggplot2
%R require(ggplot2)
# Load in the pandas library
import pandas as pd 
# Make a pandas DataFrame
df = pd.DataFrame({'Alphabet': ['a', 'b', 'c', 'd','e', 'f', 'g', 'h','i'],
                   'A': [4, 3, 5, 2, 1, 7, 7, 5, 9],
                   'B': [0, 4, 3, 6, 7, 10,11, 9, 13],
                   'C': [1, 2, 3, 1, 2, 3, 1, 2, 3]})
# Take the name of input variable df and assign it to an R variable of the same name
%%R -i df
# Plot the DataFrame df
ggplot(data=df) + geom_point(aes(x=A, y=B, color=C))

Wenn du mehr Details zu Jupyter suchst – zur Einrichtung, zum Download, zum Start über Docker, pip install oder die Anaconda-Distribution – lies unseren Definitive Guide.

Das R Notebook


Bis vor Kurzem war Jupyter neben Apache Zeppelin oder Beaker eine beliebte Lösung für R-Anwender.

Auch andere Formate für Berichte über Datenanalysen wie R Markdown, knitr oder Sweave sind in der R-Community weit verbreitet.

Mit der Einführung des R bzw. R Markdown Notebooks von RStudio könnte sich das ändern.

Du siehst: Der Kontext des R Markdown Notebooks ist vielschichtig. Ein Blick in die Geschichte der reproduzierbaren Forschung in R lohnt sich, um zu verstehen, was zur Entwicklung dieses Notebooks geführt hat. Am Ende wird klar: Dieses Notebook unterscheidet sich von anderen. 

R und die Geschichte reproduzierbarer Forschung

In seinem Vortrag bestätigt J.J. Allaire, dass sich die Bemühungen in R rund um Reproduzierbarkeit, die Bestrebungen in Emacs zur Verbindung von Text, Code und Eingaben, die Projekte Pandoc, Markdown und knitr sowie rechnergestützte Notebooks über viele Jahre parallel entwickelt und gegenseitig beeinflusst haben. All das hat letztlich zur Entstehung von Notebooks für R geführt.

Erstens haben rechnergestützte Notebooks eine lange Historie: Seit Ende der 80er, als die Oberfläche von Mathematica erschien, gab es zahlreiche Fortschritte. 2001 begann Fernando Pérez mit der Entwicklung von IPython, 2011 erschien Version 0.12. Das SageMath-Projekt startete 2004. Danach folgten viele Notebooks. Für die Data-Science-Community besonders relevant: Beaker (2013), Jupyter (2014) und Apache Zeppelin (2015). 

Zweitens beeinflussten auch Auszeichnungssprachen und Editoren die Entwicklung der RStudio-Notebook-App – namentlich Emacs, Markdown und Pandoc. Org-mode erschien 2003 – ein Modus in Emacs zum Bearbeiten und Organisieren von Notizen, Planung und Autorenschaft. Sechs Jahre später kam Emacs org-R mit Support für R. Markdown wurde 2004 veröffentlicht, eine Auszeichnungssprache, mit der sich Fließtext so formatieren lässt, dass er in HTML oder andere Formate konvertiert werden kann. Einige Jahre später kam Pandoc – ein Schreibwerkzeug und die Basis vieler Publishing-Workflows.

Drittens trug das Engagement der R-Community für reproduzierbare, transparente Forschung zur Entstehung eines Notebooks für R bei. 2002 wurde Sweave eingeführt, um R-Code in LaTeX-Dokumente einzubetten und daraus PDFs zu generieren – inklusive Text, Analyse, Grafiken, Code und Ergebnissen. Zehn Jahre später entstand knitr, um langjährige Probleme in Sweave zu lösen und Funktionen aus verschiedenen Add-ons in einem Paket zu vereinen – eine transparente Engine für dynamische Berichtserstellung in R. Knitr erlaubt beliebige Eingabesprachen und Ausgabemarkups.

Ebenfalls 2012 entstand R Markdown als Markdown-Variante, die R-Code-Chunks einbetten kann und zusammen mit knitr reproduzierbare, webbasierte Berichte erzeugt. Der große Vorteil war und ist, dass du kein LaTeX mehr brauchst, dessen Einstieg nicht trivial ist. Die Syntax von R Markdown ähnelt der von Markdown, hat aber Erweiterungen, etwa für LaTeX-Gleichungen.

R Markdown versus rechnergestützte Notebooks

R Markdown ist vermutlich die populärste Option in der R-Community, um Datenanalysen zu dokumentieren. Kein Wunder, dass es im R Markdown Notebook eine zentrale Rolle spielt. 

R Markdown und Notebooks teilen sich einiges: reproduzierbare Workflows, das Verweben von Code, Output und Text in einem Dokument, Unterstützung interaktiver Widgets und Ausgabe in mehrere Formate. Die Schwerpunkte unterscheiden sich jedoch: R Markdown fokussiert auf reproduzierbare Batch-Ausführung, Klartext-Repräsentation, Versionskontrolle, produktionsreife Ausgabe und bietet denselben Editor und dieselben Tools wie für R-Skripte.

Traditionelle Notebooks setzen dagegen auf Inline-Ausgabe mit dem Code, Caching über Sessions hinweg, das Teilen von Code und Ausgabe in einer Datei. Im Zentrum steht ein interaktives Ausführungsmodell. Sie nutzen keine reine Textrepräsentation, sondern eine strukturierte Datenrepräsentation wie JSON.

Damit erklärt sich der Zweck der RStudio-Notebook-App: Sie vereint die Stärken von R Markdown mit den Vorteilen rechnergestützter Notebooks.

Deshalb ist R Markdown das Herzstück des R Markdown Notebooks: RStudio definiert sein Notebook als „ein R-Markdown-Dokument mit Chunks, die unabhängig und interaktiv ausgeführt werden können, wobei die Ausgabe direkt unterhalb der Eingabe sichtbar ist“.

So arbeitest du mit R Notebooks


Wenn du schon mit Jupyter oder anderen Notebooks gearbeitet hast, wirst du dich schnell zurechtfinden. Ein Unterschied: Standardmäßig arbeitest du nicht mit Codezellen, sondern mit einer Art Texteditor, in dem du Code-Chunks per R Markdown kennzeichnest.

R Markdown Notebook installieren und verwenden

Voraussetzung ist die aktuelle Version von RStudio auf deinem Rechner. Da Notebooks ein neues RStudio-Feature sind, gibt es sie erst ab Version 1.0. Prüfe daher, ob du eine passende Version installiert hast.

Falls nicht, lade die aktuelle Version hier herunter.

Um ein neues Notebook zu erstellen, gehst du im Tab File auf „New File“. Dort findest du die Option für ein neues R Markdown Notebook. Wenn RStudio dich zum Aktualisieren einiger Pakete auffordert, bestätige das. Anschließend erscheint die neue Datei.

Tipp: Kontrolliere oben im Dokument, ob du wirklich mit einem Notebook arbeitest. Als Ausgabe sollte html_notebook eingestellt sein.

Der Standardtext im Dokument ist in R Markdown gehalten. Wenn dir R Markdown noch nicht vertraut ist, schau dir unseren Reporting With R Markdown Kurs oder das Material von RStudio an.

Jupyter mit R Markdown vergleichen

Hinweis: Über das Zahnrad-Icon passt du den Arbeitsbereich des Notebooks an: Ausgaben ein- oder ausklappen bzw. entfernen, Vorschauoptionen ändern und Ausgabeoptionen konfigurieren.

Gerade die Ausgabeoptionen sind praktisch, wenn du z. B. Syntax-Highlighting, ein anderes Theme oder Standardbreite und -höhe von Grafiken anpassen willst.

Ab hier kannst du Code-Chunks und Text einfügen!

Code-Chunks fügst du auf zwei Arten ein: per Tastenkürzel Ctrl + Alt + I oder Cmd + Option + I oder über den Insert-Button in der Toolbar. 

Praktisch am Arbeiten mit R Markdown Notebooks: Du kannst die Ausführung deiner Code-Chunks verfolgen – links erscheint ein grüner Balken, wenn große Chunks oder mehrere Chunks nacheinander laufen. Unten gibt es zusätzlich eine Fortschrittsanzeige.

Den grünen Balken siehst du im folgenden GIF:

Das R Notebook verwenden

Zur Codeausführung: Es gibt mehrere Wege, R-Code-Chunks auszuführen.

Du kannst einen Chunk laufen lassen oder zum nächsten springen, alle Chunks darunter oder darüber ausführen; außerdem kannst du R neu starten und alle Chunks ausführen oder neu starten und die Ausgabe leeren.

Hinweis: Wenn du den Code des Notebooks ausführst, erscheint die Ausgabe auch in deiner Konsole! Das ist für alle, die sonst mit Jupyter arbeiten, ein merklicher Unterschied.

Treten bei der Ausführung Fehler auf, stoppt sie und neben dem betroffenen Codeabschnitt erscheint ein roter Balken.

Du kannst den Stopp unterdrücken, indem du in den Chunk-Optionen errors = TRUE setzt, zum Beispiel so:

```{r, error=TRUE}
iris <- read.csv(url("http://mlr.cs.umass.edu/ml/machine-leaning-databases"), header = FALSE)
names(iris) <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
```

Hinweis: Der Fehler wird weiterhin angezeigt, aber die Ausführung des Notebooks wird nicht angehalten!

So nutzt du die „Magie“ des R Markdown Notebooks

Wie in Jupyter kannst du auch im R Markdown Notebook interaktiv arbeiten. Es funktioniert etwas anders, da es keine echten Magic Commands gibt. Um andere Sprachen zu nutzen, fügst du separate Bash-, Stan-, Python-, SQL- oder Rcpp-Chunks hinzu. 

Das wirkt auf den ersten Blick eingeschränkt, wird aber durch die einfache Einfügung dieser Chunk-Typen über den Insert-Button in der Toolbar ausgeglichen.

Auch die Arbeit mit diesen Chunks ist unkompliziert: Ein Beispiel für SQL-Chunks findest du in diesem Dokument von J.J. Allaire. Für Bash-Befehle gibst du den Befehl einfach ein – zusätzliche Zeichen wie „!“ zur Kennzeichnung brauchst du hier nicht, anders als in Jupyter. 

Ausgabe deiner R Markdown Notebooks

Bevor du die finale Version rendert, möchtest du vielleicht eine Vorschau sehen. Dafür gibt es ein praktisches Feature in der Toolbar. 

Klicke auf „Preview“ – die vorläufige Version deines Dokuments erscheint rechts im Tab „Viewer“.

Über ein paar Zeilen im Kopfbereich des Notebooks passt du die Ausgabeoptionen an, etwa so:

---
title: "Notebook with KNN Example"
output:
  pdf_document:
    highlight: tango
    toc: yes
  html_notebook:
    toc: yes
---

Wenn zusätzliche Distributionen nötig sind, genügt oft ein Testlauf mit „Knit“ – die Konsole zeigt dir an, wo du die Pakete herunterladen kannst. 

Das ist nur eine von vielen Exportmöglichkeiten: Du kannst auch GitHub-Dokumente, Word-Dokumente, Beamer-Präsentationen usw. erzeugen – alles Optionen, die du schon aus klassischen R-Markdown-Dateien kennst. Mehr Infos findest du hier

Tipps und Tricks für die Arbeit mit dem R Notebook


Neben allgemeinen Coding-Praktiken wie gute Dokumentation, konsistente Benennung, sinnvolle Gruppierung und angemessene Namenslängen helfen dir folgende Tipps, dein Notebook für andere besonders nutzerfreundlich zu machen:

  • Wie in anderen Notebooks ist es sinnvoll, große Chunks oder Chunks mit mehreren Ausgaben aufzuteilen. Das verbessert die Nutzererfahrung und erhöht die Nachvollziehbarkeit.
  • Nutze Tastenkürzel, um schneller zu arbeiten. Die meisten findest du in der Toolbar neben den jeweiligen Befehlen. 
  • Verwende die Rechtschreibprüfung in der Toolbar, damit dein Bericht sprachlich sauber ist. 
  • Wenn dein Notebook sehr code-lastig ist, blende den Code aus. Das geht über Chunk-Optionen oder im HTML des Notebooks.

R Notebook versus Jupyter Notebook


Über die bereits genannten Unterschiede hinaus gibt es weitere Aspekte.

Vergleichen wir Jupyter mit dem R Markdown Notebook!

Vier Punkte sind besonders interessant: Teilen von Notebooks, Codeausführung, Versionskontrolle und Projektmanagement.

Teilen von Notebooks

Der Quellcode eines R Markdown Notebooks ist eine .Rmd-Datei. Beim Speichern wird zusätzlich eine .nb.html Datei erzeugt. Diese HTML-Datei enthält eine Kopie des R-Markdown-Quellcodes und der erzeugten Ausgaben. 

Das heißt, du brauchst keinen speziellen Viewer, um die Datei anzusehen – anders als bei in Jupyter erstellten Notebooks, die einfache JSON-Dokumente sind, oder anderen Notebooks mit strukturierten Ausgabeformaten. Du kannst dein R Markdown Notebook auf jedem Webserver, auf GitHub oder per E-Mail veröffentlichen.

Es gibt außerdem APIs zum Rendern und Parsen von R Markdown Notebooks: So können andere Frontends Authoring-Modi für R Markdown bereitstellen oder Konverter zwischen verschiedenen Notebook-Formaten entstehen.

Zum Teilen deiner Jupyter-Notebooks kannst du sie als Slideshows, Blogs, Dashboards usw. exportieren. Mehr Infos findest du in diesem Tutorial. Standardmäßig kannst du außerdem Python-Skripte, HTML-, Markdown-, PDF- oder reStructuredText-Dateien erzeugen.

Codeausführung

R Markdown Notebooks erlauben es, einen Chunk oder den nächsten auszuführen, alle darunter- oder darüberliegenden Chunks zu starten; zusätzlich kannst du R neu starten und alle Chunks laufen lassen oder neu starten und die Ausgabe leeren.

Diese Optionen sind für R besonders nützlich, weil alle R-Codeabschnitte im selben Environment laufen. Für Nicht-R-Sprachen kann das ein Nachteil sein, da diese keine Umgebungen teilen.

Unterm Strich bieten diese Ausführungsoptionen viel Flexibilität – auch im Vergleich zu Jupyter, obwohl die Unterschiede nicht riesig sind: In Jupyter kannst du einzelne Zellen, mehrere Zellen und alle Zellen ausführen sowie aktuelle oder alle Ausgaben leeren. Die Code-Umgebung wird zwischen Zellen geteilt.

Versionskontrolle

Oft hört man, dass Jupyter die Versionskontrolle erschwert oder Git mit Notebooks umständlich ist. Abhilfe schaffen Exporte als Skript oder Filter, die veränderliche Metadaten beim Commit bereinigen, etwa Run-Count und Output.

R Markdown Notebooks machen es etwas einfacher: Durch die zugehörigen HTML-Dateien mit gespeicherten Ausgaben und die Tatsache, dass die Notebook-Dateien im Kern Klartext sind, klappt Versionierung leichter. Du kannst nur die .Rmd-Datei versionieren oder zusätzlich die .nb.html-Datei aufnehmen.

Projektmanagement

Da das R Markdown Notebook nativ zu RStudio gehört, integriert es sich nahtlos in deine R-Projekte. Zudem unterstützen die Notebooks weitere Sprachen, darunter Python, C und SQL.

Jupyter ist dagegen nicht an ein bestimmtes Entwicklungskit gebunden. Die nahtlose Integration in Projekte erfordert mitunter mehr Aufwand. Dafür unterstützt Jupyter noch mehr Sprachen und ist besser geeignet, wenn du z. B. Scala, Apache Toree, Julia oder andere Sprachen einsetzen willst. 

Alternativen zu Jupyter oder R Markdown Notebooks


Neben Notebooks als interaktive Data-Science-Umgebungen zum einfachen Teilen deines Codes mit Kolleginnen, Kollegen und Freunden gibt es weitere Alternativen.

Manchmal brauchst du kein Notebook, sondern etwa ein Dashboard, eine interaktive Lernplattform oder ein Buch.

Über Sweave und knitr hast du oben schon gelesen. Weitere Optionen sind:

  • Auch wenn wir R Markdown hier bereits gestreift haben: Du kannst damit noch viel mehr tun. Erstelle z. B. Dashboards mit flexdashboard.
  • Oder nutze Bookdown, um HTML-, PDF-, ePub- und Kindle-Bücher mit R Markdown zu veröffentlichen. 
  • Shiny eignet sich ebenfalls zur Dashboard-Erstellung. Für den Einstieg mit Shiny, schau auf dieser Seite vorbei.
  • Im Bildungsumfeld kann DataCamp Light helfen, interaktive Tutorials für Blog oder Website zu erstellen. Ein Beispiel in Aktion findest du in diesem Tutorial.
Themen
R