1+1
[1] 2
R ist eine “statistische Programmier-Umgebung”.
Andere solche Werzeuge sind z.B. SAS und SPSS.
In der Biologie wird meist R verwendet, in der Medizin gerne SAS, in anderen Fächern SPSS.
R is kostenlos und “open source”.
Es gibt eine Vielzahl von Erweiterungspaketen (“packages”), die spezielle Funktionalitäten bereit stellen
Zum bequemen Arbeiten gibt es eine “Arbeits-Umgebung”, genannt “RStudio”.
Um die Übungen in diesem Kurs machen zu können, installieren Sie bitte auf Ihrem Laptop:
Sie brauchen keinen leistungsfähigen Rechner; auch ein 10 Jahre alter Laptop genügt meist.
Anstatt RStudio und R lokal auf dem eigenen Rechner zu installieren, kann man auch beides zentral auf einem Server installieren. Mehrere Benutzer können dann die Installation gemeinsam nutzen, in dem Sie über einen Webbrowser darauf zugreifen. Dabei hat jeder Benutzer seinen eigenen Bereich.
Für die Vorlesung habe ich einen RStudio-Server hier eingerichtet, den ich bei Bedarf hochfahre:
Loggen Sie sich mit einem Usernamen ein. Diese lauten stud00
bis stud99
.
Das RStudio-Fenster ist in 4 Teilfenster (“Panes”) eingeteilt. (Anfangs sind nur 3 sichtbar.) Zunächst nutzen wir das Teilfenster “Console”. Wenn man hier eine Anweisung eintippt und die Enter-Taste (beschriftet mit ``⏎’’) drückt, führt R diesen aus und schreibt das Ergebnis darunter.
Tippen Sie eine einfache Mathe-Aufgabe ein. Fragen Sie R z.B., was \(1+1\) ergibt, indem Sie die Konsole anklicken, 1+1
eintippen, und dann Enter drücken. R antwortet mit 2
.
Versuchen Sie einige weitere mathematischen Ausdrücke.
Die Grundrechenarten stellt man wie folgt dar:
+
und -
geschrieben.*
) ausgedrückt, z.B. 2*3
.20/4
.(
und )
, nicht [
oder ]
).^
, also z.B. 3^2
für das Quadrat von 3..
), z.B. 1.5
für eineinhalbÜbung: Lassen Sie R für sich rechnen: - Was ist 123 mal 17? - 10 geteilt durch 7? - 4 zur dritten Potenz? - 2¾ minus 10? - Was ist das dreifache der Summe aus 10 und 5?
Es gibt auch eine Vielzahl von Funktionen, z.B.:
sqrt
bedeutet “square root”, d.h., Quadratwurzel. Für \(\sqrt{2}\) schreibt man sqrt(2)
.round(x,n)
bedeutet: Runde die Zahl x
auf zwei Nachkommastellen.Aufgabe:
“Turtle Graphics” ist eine Idee aus den 60er-Jahren, um Kindern spielerisch das Programmieren näher zu bringen.
Wir probieren das aus.
Dazu gibt es ein Erweiterungs-Paket zu R namens TurtleGraphics
.
Mit
können Sie R anweisen, das Paket herunter zu laden und zu installieren.
Dann laden Sie das Paket mit
“Pakete” erweitern die Funktionalität von R. Um ein Paket, z.B. mit dem Namen “foo”, zu laden, gibt man die Anweisung: library(foo)
.
Wenn R neu gestartet ist, sind noch keine Pakete geladen. Man muss also nach jedem Neustart von R die benötigten Pakete erst mit library
laden.
Die Anweisung install.packages("foo")
(mit Anführungszeichen!) weist R an, das Paket von der Webseite CRAN (eine zentrales “Repository” für R-Pakete) herunter zu laden und zu installieren.
install.packages
müssen Sie nur einmal durchführen, bevor Sie das Paket zum ersten mal verwenden. Das Laden des Pakets mit library
ist jedes Mal erforderlich, nachdem Sie R neu gestartet haben.
Wenn Sie turtle_init()
eingeben (mit den Klammern!), erscheint im Teilfenster “Plots” eine kleine Schildkröte:
Dieser können Sie nun Anweisungen geben, z.B. “Gehe 20 Schritte vorwärts, drehe dich dann um 90 Grad nach recht, gehe dann nochmals 10 Schritte vorwärts.”
Beobachten Sie, wie die Schildkröte eine Spur hinterlässt.
Aufgabe: Versetzen Sie die Schildkröte mit turtle_init()
wieder in den Ausgangszustand. Lassen Sie sie dann mit den Vorwärts- und Drehung-Rechts-Anweisungen ein Rechteck zeichnen.
Tipp: Wenn Sie im rechten oberen Teilfenster auf “History” klicken, sehen Sie die Anweisungen, die Sie bisher gegeben haben. Anstatt eine Anweisung nochmal einzugeben, können Sie sie dort einfach nochmal anklicken. Alternativ können Sie auch inder Konsole die Cursor-Tasten ⇧ und ⇩ verwenden, um durch die vorherigen Anweisungen zu blättern und sie zu editieren.
Mit der Funktion “New R-Skript” im Menü “New File” können Sie ein leeres “Skript” anlegen. Das ist eine Liste von Anweisungen, die Sie dort vorbereiten, und dann alle auf einmal ausführen.
Aufgabe:
Starten Sie ein leeres Skript. Füllen Sie die Zeilen mit den Anweisungen, um das Paket “TurtleGraphics” zu laden, die Schildkröte zu initialisieren, und die Schildkröte dann ein Quadrat zeichnen zu lassen.
Klicken Sie auf den mit “Source” beschrifteten blauen Pfeil (rechts oben im Eck des Skript-Teilfensters), um alle Anweisungen auf einmal auszuführen. Klicken Sie dann auf den mit “Run” beschrifteten grünen Pfeil (oder drücken Sie zugleich Strg und Enter), um einzelne Zeilen auszuführen. Markieren Sie mehrere Zeilen mit der Maus und führen Sie sie mit Strg-Enter zusammen aus.
Speichern Sie das Skript mit der Funktion “Save” im Menü “File”. Beenden Sie RStudio, starten es neu, und laden Sie Ihr Skript wieder. Funktioniert es noch?
Beachten Sie den Unterschied zwischen dem Konsolen-Teilfenster (“console pane”) und dem Skript-Teilfenster (“script pane”):
Die folgenden Punkte führen zu viel Frustration, wenn man sie nicht im Kopf behält:
>
(der sog. Prompt) steht.1+
mit fehlendem zweiten Summanden, oder turtle_forward
mit fehlender schließender Klammer), dann erscheint ein +
(der Fortsetzungs-Prompt). Dann muss man entweder die Anweisung vervollständigen, oder die “Esc”-Taste drücken, um die Eingabe abzubrechen. Nur so kommt man zurück zum >
-Prompt.+
-Prompt. Dann muss man auf die Konsole klicken und Esc drücken, bevor man fortfahren kann.Turtle-Grafik:
Schreiben Sie ein R-Skript, das die Schildkröte ein auf der Spitze stehendes (also um 45 Grad gedrehtes) Quadrat zeichnen lässt.
Können Sie auch ein Dreieck oder Fünfeck zeichnen lassen?
Eine etwas schwierigere Aufgabe aus dem Kindergarten: Zeichnen Sie das Haus vom Nikolaus.
Sehen Sie sich den “Guide to the TurtleGraphics Package for R” an und lesen Sie nach, welche Anweisungen die Schildkröte noch versteht. Malen Sie damit ein schönes Bild.
Nutzen Sie die “Export”-Funktion (der Knopf oben auf dem “Plots”-Teilfenster), um eines Ihrer Bilder abzuspeichern, und laden Sie es auf Moodle hoch.