# Erste Schritte mit R und Turtle Graphics ###### tags: `Vl Datenanalyse` Simon Anders ## 1. Vorlesung ### Worum geht es in dieser Vorlesung? Woher kommen Daten in der Biologie? - eigene Experiment: - kleine Experimente: Aufzeichnungen im Laborbuch oder in Spreadsheets - Hochdurchsatz-Experimente: größere Dateien - Mikroskopie und bildgebende Verfahren: Bilddateien - aus veröffentlichten Experimenten - aus gesammelten und aufbereiteten Daten (Datenbanken und andere curated resources) Was wollen wir erreichen? Grundaufgabe: großer Haufen Daten --> interessantes wissenschaftliches Ergebnis Stadien/Aspekte eines Projekts - Experimente - Aufzeichnen und Zusammenstellen der Daten - Daten-Aufbereitung (data preprocessing) - Daten-Formate vereinheitlichen - Daten säubern (data cleansing) - Qualitätskontrolle (quality assessment) - Daten-Analyse: - Zusammenfassen (summerization) - Visualisierung (data visualization, plotting) - Modellierung (modelling) - Interpretation - Aufstellen von Hypothesen (hypothesis generation) oder Schlußfolgerungen (conclusions) - Validierung (validation) - Dokumentation (documentation) - Archivierung (archiving) - Veröffentlichung (publication) **Wichtig**: Dies ist kein linearer Prozess: Vielmehr bewegt man sich oft im Kreis (oder eher: in einer Spirale). Welche Werkzeuge verwenden wir in der Datenanalyse? - Papier und Bleistift - Tabellenkalkulationsprogramme (spread sheets) wie Microsoft Excel - Daten-Analyse-Programme wie GraphPad Prism oder Origin - Spezial-Programmiersprachen für Statistik wie SAS, SPSS, oder R - Universal-Programmiersprachen wir Python, C, C++ usw. #### eine einfache Einführung ins Programmieren Logo - eine Programmiersprache für Kinder - entwickelt 1967 von Wally Feurzeig, Seymour Papert, und Cynthia Solomon - pädagogisches Konzept: Turtle-Grafik #### Turtle-Grafik - Man steuert eine Roboter-Schildkröte mit einfachen Befehlen - Die Schildkröte kann mit einem Stift eine Spur hinterlassen - Wir verwenden nicht Logo, sondern ein Turtle-Grafik-Erweiterung für R - Somit lernen wir schon ein bisschen R, während wir geometrische Formen zeichnen Turtle-Grafik: Erster Versuch - Vorführung: Ich zeichne ein Quadrat. - Ich habe die folgenden Befehle in die Konsole von RStudio eingegeben, Zeile für Zeile: ``` library( TurtleGraphics ) turtle_init() turtle_forward( 10 ) turtle_right( 90 ) turtle_forward( 10 ) turtle_right( 90 ) turtle_forward( 10 ) turtle_right( 90 ) turtle_forward( 10 ) turtle_right( 90 ) ``` Die Schildkröte erscheint und zeichnet ein Quadrat. Vorbereitung: Um diese Befehle eingeben zu können, fangen wir wie folgt an: 1. R installieren: https://cloud.r-project.org/ 2. RStudio installieren: https://rstudio.com/ 3. RStudio starten, wir finden links das fenster mit der Konsole 4. In der Konsole eingeben `install.packages("TurtleGraphics")`, um das TurtleGraphics-Paket zu installieren 5. Nun können wir die o.g. Befehle eintippen. Jede Zeile ist ein Befehl an R. Zum Beispiel bedeutet `turtle_left( 90 )`, oder auch alternativ `turtle_turn( 90, "left" )`: Schildkröte, drehe dich 90 Grad nach links. Wir betrachten das genauer: - `turtle_turn` ist der Funktionsname ("function name") - Dem folgt die Argumentliste ("argument list"). Sie ist immer in runde Klammern (parentheses, parens) eingeschlossen - Wenn die Argumentliste mehrere Argumente enthalten, werden sie durch Kommas (commas) getrennt - das erste Argument, vor dem Komma, ist hier der Winkel. Es muss immer eine Zahl sein - das zweite Argument ist bei `turtle_turn` die Richtung. Es muss immer ein Wort ("String") sein, entweder ``"left"`` oder ``"right"`. - Ein String (also ein Stück Text, eine "Zeichenkette") muss immer in Anführungszeichen stehen - Leerzeichen ignoriert R, also kann man sie setzen, wie man mag (aber nicht innerhalb von Anführungszeichen) - Aller Text nach einem Hash-Zeichen ("#") wird von R ignoriert. Damit kann man sich in seinem Programm Anmerkungen ("comments") machen - Mache Funktionen haben keine Argumente. Trotzdem bekommen sie eine Argumentliste, die dann leer ist, aber trotzdem nicht fehlen darf. Beispiel: turtle_init() - DIe grafische Ausgabe erscheint im "plot panel", rechts unten - Dort findet man auch die Hilfe (help), wo man zum Beispiel nachschlagen kann, welche "turtle"-Funktionen es gibt, und welche Argumente die erwarten - Die Turtle-Grafik ist kein Teil von R, ist also nicht dabei, wenn man R installiert. Es ist ein Erweiterungs-Paket ("package"), dass man erst installieren muss. Dazu schreibt man in der Konsole einfach: `install.packacke( "TurtleGraphics")`` - Wenn man R startet, sind die installierten Pakete zunächst nicht aktiv. Man aktiviert ("lädt") das Paket mit `library("TurtleGraphics")`. Bisher haben wir die Befehle einzeln eingegeben. Ein "Programm" ist eine Abfolge von Befehlen. - Jetzt schreiben wir uns ein Programm: Es macht ein Quadrat - Dazu brauchen wir ein neues Fenster, in das wir das Programm eintippen. Im Menü: "New R Script". - Der Begriff "Script" ist mehr oder weniger synonym zu "Programm", aber "Skript" impliziert, das es ein einfaches, kurzes Programm ist, dass sich daruf beschränkt, Funktionalität von komplexeren im Hintegrund stehendem Code (zB unser "TurtleGraphics"-Paket) zu nutzen. Der Code unseres Programm ist wie oben. Nur führen wir jetzt nicht jeden Befehl direkt aus, sondern tippen erst alles ein und führen dann alles zusammen aus. - Um alle Befehle, also das Skript als Ganzes, auszuführen, drücken wir "Source". - Wir können auch einzelne Zeilen einzeln ausführen, wie vorher in der Konsole. Dazu drücken wir "Run". Die Zeile wird in die Konsole kopiert und dann ausgeführt. - Wir können das Programm nun leicht modifizieren und probieren was sich ändert. Wie, zum Beispiel, wenn wir schräg anfangen? Dazu fügen wir in der Zeile nach `turtle_init()` eine neue Zeile ein: `turtle_left(20)` - Wir mussten eben bis vier zählen und dieselben Befehle viermal wiederholen. Informatiker wiederholen sich ungern, und ganz besonders möchten sie nie selbst zählen. Dafür hat man ja Computer. Wie bringen wir den Computer dazu, bis 4 zu zählen? - Wir wollen denselben Block aus (bei uns zwei) Befehlen mehrmals wiederholen. Das nennt man eine Schleife (engl.: loop). - Wir verwenden dazu die "for"-Konstruktion: `for( i in 1:4 )`. Hier ist `1:5` eine Abkürzung für "die Zahlen von 1 bis 4". Wir wollen also, dass R von 1 bis 4 zählt, und dabei jedesmal die beiden Befehle ausführt. Damit "for" weiß, welche Befehle es wiederholen soll, haben wir sie in geschweiften Klammen zusammen gefasst. Was das "i" macht, kommt später ## Variablen Eine Variable ist ein Speicherplatz für einen Wert (value) mit einem Namen (name). Variablen weisst man ihren Wert mit dem Zuweisungs-Operator (assignment operator) zu: "<-" (ein Größer-Zeichen, gefolgt von einem Minus), Dann kann man sie verwenden: ``` > abc <- 13 > abc [1] 13 > abc + 5 [1] 18 ``` Variablen sind variabel: Man kann ihren Wert ändern: ``` > abc <- 13 > abc [1] 13 > abc + 5 [1] 18 > abc <- 12 > abc + 5 ``` Das `i` in der `for`-Schleife ist auch eine Variable. Wir können sie verwenden, um z.B. die Seiten immer länger werden zu lassen: ``` for( i in 1:8 ) { print( i ) turtle_forward( 10*i ) turtle_right( 150 ) } ``` ![](https://i.imgur.com/psFjzjM.png)