R für Einsteiger und Gelegenheitsnutzer

R, RStudio und Quarto besser kennenlernen und
mit Hilfe von ChatGPT meistern
Online-Seminarreihe ‘Seminars in Biostatistics’ der IBS-DR

Dr. Friedrich Pahlke

RPACT GbR

5. Juli 2023

Motivation

Motivation

Warum R/RStudio/Quarto/ChatGPT? Warum dieses Seminar?

  • R: Populär, wächst am schnellsten, hat nahezu unbegrenztes Potential
  • RStudio: Populärste R IDE
  • Quarto: Eine Quelle, viele Möglichkeiten
  • ChatGPT: Spart (viel) Zeit, steigert die Effizienz

Motivation

Aufgaben, die sich perfekt mit Quarto lösen lassen:

  • Erstellung qualitativ hochwertiger Vortragsfolien
  • Schreiben einer wissenschaftlichen Abschlussarbeit, Publikation oder Monographie
  • Reporting: Klinische Studien, Data Science / Big Data
    • Automatisierung: Sammeln, Verarbeiten und Darstellen von Daten aus verschiedenen Quellen
  • Forschung und Lehre: Quarto + R/Shiny - Wissen interaktiv vermitteln
    • Seminare, Vorträge, Trainingskurse

Motivation

… oder:

  • Schnell und einfach eine professionelle Webseite1 erstellen

Inhalt

R Basiswissen (1/2)

  • Interpretierte Sprache (wie z.B. Python und PHP): Code wird vom Interpreter zur Laufzeit Zeile für Zeile gelesen und ausgeführt
  • Benutzerfreundlich, schnelle Lernkurve, schnelle Softwareentwicklung
  • Performance u.U. schlechter als bei kompilierten Sprachen wie C/C++
    Aber: Nutzung von z.B. C/C++ auch in R möglich \(\rightarrow\) Rcpp

R Basiswissen (2/2)

  • 19.790 R Pakete auf CRAN verfügbar
    (Stand: 05.07.2023)
  • Herausragende Fähigkeiten in der Datenvisualisierung und Grafikdarstellung mit ggplot2
  • Sehr populär in Forschung, Lehre und Industrie:
    Pharma, Lebensmitelforschung, Banken, Versicherungen, Automobilindustrie, Hotel-Vermittlung, …

Popularität von R

Die Anzahl der auf Google Scholar gefundenen wissenschaftlichen Artikel für Data Science Software. Quelle: r4stats.com \(\rightarrow\) R: +90%; SPSS: +25%; SAS: +20% (ca.)

Über Posit

  • Die Firma RStudio PBC mit Sitz in Boston wurde 2022 in Posit Software PBC umbenannt
  • Posit hat eine zentrale Bedeutung in der R-Community
  • Sie entwickelt RStudio IDE, RStudio Server, Shiny, Shiny Server, Quarto
  • Sie betreibt Cloud-Plattformen wie shinyapps.io oder Posit Cloud
  • Hadley Wickham ist der Chief Scientist bei RStudio und hat die tidyverse Pakete entwickelt (dplyr, ggplot2, …), die die Art und Weise, wie Datenanalyse in R durchgeführt wird, revolutioniert haben
  • Zu den Posit Produkten gibt es die nützlichen Posit Cheatsheets

RStudio

RStudio IDE

Die beliebteste integrierte Entwicklungsumgebung (IDE) für R ist RStudio

Quelle: RStudio Cheat Sheet

R Markdown

Quelle: R Markdown Cheat Sheet

Quarto

  • Ein Open-Source-System für wissenschaftliche und technische Veröffentlichungen
  • “Quarto is a multi-language, next generation version of R Markdown from Posit, with many new features and capabilities.” quarto.org
  • Noch nicht so bekannt wie R Markdown. Slogan: “Analyze. Share. Reproduce. You have a story to tell with data — tell it with Quarto”
  • Wie R Markdown verwendet Quarto knitr, um R-Code auszuführen, d.h. die meisten vorhandenen Rmd-Dokumente können gerendert werden

Quarto Einsatzfelder

Quarto eignet sich z.B. für:

Alle Formate lassen sich mit interaktiven (Shiny) Komponenten erweitern und auf vielen verschiedenen Plattformen veröffentlichen, z.B. Github Pages.

Quarto Tools

Quarto lässt sich mit vielen verschiedenen Tools nutzen:

Quarto Beispiele

Quarto ist sehr flexibel

  • Viele interaktive Elemente in Revealjs verfügbar: Quarto Presentations

  • LaTeX Dateien können mit dem R Paket gretlR in Quarto eingebunden werden, Beispiel: gretlR::include_tex(path="doc.tex")

  • HTML/CSS kann z.B. mit dem Format revealjs in Präsentationen direkt benutzt/eingebunden werden

  • Beispiel:

    ![](figure.jpg){width="100%" title="Pitcure"}

    wird zu

    <img data-src="figure.jpg" style="width:100.0%" title="Pitcure">

Quarto ist leicht erweiterbar

Quarto - Hands-on

  • Wie lässt sich ein vorhandenes Rmd-Dokument in Quarto nutzen?
  • Beispiele:
    • simple_example.Rmd \(\rightarrow\) simple_example.qmd
    • rpact_binary_examples.Rmd \(\rightarrow\) rpact_binary_examples.qmd
  • Wie unterscheiden sich die YAML Header?
    • rpact_binary_examples2.qmd

ChatGPT

Nutzung künstlicher Intelligenz beim Programmieren

ChatGPT: Technische Grundlagen

  • ChatGPT ist ein Sprachmodell, das auf der GPT-Architektur von OpenAI basiert
  • Es wurde trainiert, indem es große Mengen an Textdaten analysiert hat, um Sprachmuster und Zusammenhänge zu verstehen
  • Das Modell besteht aus mehreren Schichten von Neuronen1, die die Informationen verarbeiten
  • Das Modell verwendet Techniken des maschinellen Lernens, insbesondere des Deep Learning, um die Wahrscheinlichkeit verschiedener Wörter und Sätze zu berechnen

Grenzen von ChatGPT

  • Es analysiert und generiert Text basierend auf Mustern, die es während des Trainings erkannt hat
  • Es hat kein eigenes Verständnis oder “Bewusstsein”
  • Um die Qualität der Antworten zu verbessern, wird ChatGPT regelmäßig mit Feedback von Benutzern aktualisiert
  • Es kann falsche oder ungenaue Informationen liefern, die aber sehr eloquent und “selbstsicher” formuliert sind
  • Es liefert keine Quellenangaben

\(\rightarrow\) Eine Prüfung der Antworten und ggf. Korrektur ist anzuraten

ChatGPT-Anwendungsfelder beim Programmieren mit R/Rmd/qmd

  • R als neue Programmiersprache lernen
  • Sprache und Grammatik in Texten prüfen und ggf. korrigieren
  • Code kommentieren
  • Lösungsansätze und -Beispiele generieren
  • Debugging: Fehler schneller finden
  • Refactoring \(\rightarrow\) Anwendung von Clean Code Regeln
  • Performance optimieren
  • Das Gerüst an Klassen für ein komplexes R Package Projekt generieren lassen

Mit OpenAI/ChatGPT loslegen

Die Qual der Wahl - zwei Möglichkeiten:

  1. ChatGPT direkt nutzen: chat.openai.com
  2. OpenAI Account erstellen und ChatGPT über die OpenAI API nutzen

API-Nutzung: OpenAI Account erstellen

platform.openai.com/account

API-Nutzung: OpenAI Zugriff in RStudio einrichten

  • Einen OpenAI API key erstellen und speichern

  • Im Projekt-Verzeichnis die Datei .Renviron erstellen und folgende Zeilen einfügen:

    OPENAI_API_KEY = "<APIKEY>"
    GPTSTUDIO_LANGUAGE = "de"
  • R Session neu starten

  • Alternativ in der laufenden Session folgendes ausführen:

    Sys.setenv(OPENAI_API_KEY = "<APIKEY>")
    Sys.setenv(GPTSTUDIO_LANGUAGE = "de")

API-Nutzung: RStudio Addin installieren

  • Das RStudio Addin gptstudio installieren

  • Offizielles Release von CRAN:

    install.packages("gptstudio")
  • Neuste Developer Version von GitHub:

    devtools::install_github("MichelNivard/gptstudio")

Live: gptstudio in RStudio nutzen

Live: ChatGPT direkt nutzen

ChatGPT-Beispiel: Clean Code (1/3)

Primärziel: Der Code ist:

  • lesbar und verständlich und
  • weist eine reduzierte Komplexität auf

\(\rightarrow\) Es ist einfacher:

  • den Code zu erweitern oder
  • Fehler zu finden und zu beheben

ChatGPT-Beispiel: Clean Code (2/3)

Beispiel: Dieses Skript verstößt gegen alle gängigen Clean-Code-Regeln:

y=function(x){
  s1=0
  for(v1 in x){s1=s1+v1}
  m1=s1/length(x)
  i=ceiling(length(x)/2)
  if(length(x) %% 2 == 0){i=c(i,i+1)}
  s2=0
  for(v2 in i){s2=s2+x[v2]}
  m2=s2/length(i)
  c(m1,m2)
}
y(c(1:7, 100))

ChatGPT-Beispiel: Clean Code (3/3)

  • ChatGPT-Anweisung: “Bitte optimiere den folgenden R Code und wende dabei insbesondere gängige Clean Code Regeln an”
  • ChatGPT-Antwort: Chat ansehen

ChatGPT-Beispiel: Pipe-Operator

  • Unterschiedliche Pipe-Operatoren kennenlernen und ausprobieren: RPACT Cloud
  • ChatGPT-Anweisung: “Gib mir ein komplexeres R Code Beispiel, dass sich nutzen lässt, um die Syntax mit Pipe-Operator und ohne Pipe-Operator zu illustrieren.”
  • ChatGPT-Antwort: Chat ansehen

Literatur

Hinweis: Diese Präsentation ist online verfügbar unter r-sibsinar.rpact.com

Lizenzinformationen