Einführung in R. Felix Kuhr Institut für Informationssysteme Universtität zu Lübeck. December 13, 2016

Ähnliche Dokumente
Einführung in R. Einführung. Einführung / 3. Einführung / 2

Einführung in R. Matthias Templ, Leonhard Seyfang. Oktober 2005

Statistisches Programmieren

Running R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden.

Datenaufbereitung, Grafische Datenanalyse

Erwin Grüner

Einfaches Datenmanagement in R

0.1 R starten, R beenden Wenn man R startet, beginnt man einen Session. Man beendet einen Session mit

> patienten<-data.frame( c(28,61,79,54,na,48), c(2,2,3,2,1,1), c("pillen","pillen","massage","gymnastik","massage","gymnastik"),

IDE Grundlagen Vektoren Matrizen Faktoren Dataframes Visualisierung Tips. Quick & dirty

10:Exkurs MATLAB / Octave

Grundlagen der Programmiersprache C++

Datenmanagement in R: Eine Einführung

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

VBA-Programmierung: Zusammenfassung

Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Kapitel 3. Programmieren in R. Vorlesung Programmieren in statistischer Software: R Sommersemester Bedingte Anweisungen, Schleifen, Funktionen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Hypothesentests mit R Ashkan Taassob Andreas Reisch

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

3 Kurzeinführung in Matlab

Einführung in die statistische Sprache R

Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung

'group' statt 'daten$group'. 5) The Help System

Die Programmiersprache C Eine Einführung

Einführung in die C-Programmierung

Übung zur Vorlesung Multimedia im Netz

Modul 122 VBA Scribt.docx

Statistische Software (R) Konstanten. Datentypen in R. Aufruf der Hilfeseiten zu grundlegende Operatoren und Funktionen: Paul Fink, M.Sc.

Matlab Einführung. Tobias Wunner

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Tutorium für Fortgeschrittene

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Probeklausur: Programmierung WS04/05

Statistische Software (R)

Objektorientiertes Programmieren für Ingenieure

R-Tutorial. R bietet zahlreiche Hilfe-Funktionen an. Informiere Dich über die Funktion log():

Probleme beim Projekt-Speichern

Das einfachste Objekt ist ein Vektor, der aus mehreren Elementen besteht. Ein Vektor wird auf diese Weise erzeugt:

Einstieg in die Informatik mit Java

Prozess und Statistik. Einführung in. Eine R-Übersicht und Motivation R in der täglichen Arbeit zu nutzen. Günter Faes faes.de.

Einführung in R Viktor Werle Dustin Kahl. Entscheidungen unter Risiko und statistische Datenanalyse

Erwin Grüner

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Anwendungssoftware III (MATLAB)

Erwin Grüner

4.Grundsätzliche Programmentwicklungsmethoden

Lua Grundlagen Einführung in die Lua Programmiersprache

Benutzerfunktionen Was ist eine Funktion, was ist eine Prozedur?

Objective-C CheatSheet

Programmierung mit C Zeiger

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Filter in VBA nutzen HARALD NAHRSTEDT. Erstellt am

R starten (Arbeitsverzeichnis wählen, Workspace abspeichern, History abspeichern)

Statistische Software P. Fink. Statistische Software (R) Wiederholungshausübung SoSe 2015

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Statistik und Computer Statistische Software (R) Paul Fink, M.Sc. Formeln und Code Was ist Statistiksoftware?

2.3 Univariate Datenanalyse in R

Geocodierung mit RStudio am Beispiel Google Maps API

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Grundlagen der Informatik 2

Kapitel 1. R als Taschenrechner. Vorlesung Programmieren in statistischer Software: R Sommersemester Einleitung, Grundlagen

Kurze Einführung in die Programmiersprache C++ und in Root

Matlab Übersicht. Matlab steht für MATrix LABoratory, die Fa. The Mathworks wurde 1984 gegründet

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Tag 9: Datenstrukturen

Arbeiten mit Daten. Session 3

Programmierkurs: Delphi: Einstieg

Statistik und Computer. Statistische Software (R) Was ist Statistiksoftware? Formeln und Code. Applications. Theory. Methodology

Einführung in die formale Demographie Übung

Informationsverarbeitung im Bauwesen

Matlab Einführung Einführung in die Neuroinformatik SS 12. Miriam Schmidt Institut für Neuroinformatik

Informationsverarbeitung im Bauwesen

W-Rechnung und Statistik für Ingenieure Übung

Primitive Datentypen und Felder (Arrays)

Grundlagen der Programmierung

Einführung in die Programmiersprache C

Multimedia im Netz Wintersemester 2011/12

Javakurs 2013 Objektorientierung

Repetitorium Informatik (Java)

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Statistische Software

MVC-II Schematische Aufzeichnung Des MVC (model-2), bei dem zwei Modelle zum Zuge kommen:

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Variablen und Konstanten

Erste Schritte in R. 27. Oktober 2012 Statistik mit R Heike Zinsmeister WS 2011/12

Übersicht. Vorstellung des OO-Paradigmas

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Matlab Einführung Theorie Neuronaler Netze WS 11/12. Miriam Schmidt Institut für Neuroinformatik

Transkript:

Einführung in R Felix Kuhr Institut für Informationssysteme Universtität zu Lübeck December 13, 2016

Einführung R ist ein Software-Paket für statistisches Rechnen. R ist eine Open Source Implementierung der Sprache S, die in den Bell Laboratories in den 1970er Jahren entwickelt worden ist. R unterstützt eine Vielzahl an Betriebssystemen (Windows, Unix and MacOS). R wurde ursprünglich von Ross Ihaka und Robert Gentleman an der Universität Auckerland Mitte der 1990er Jahre entwickelt. R wird primär über www.r-project.org und cran.r-project.org (Archive) verbreitet. R kann über Packages erweitert werden. Einige sind in der R Distribution enthalten. Weitere befinden sich auf CRAN.

Simple Use of Color In a Plot -2-1 0 1 2 0 10 20 30 40 50 Just a Whisper of a Label Figure: Plot aus dem Paket graphics

0 10 20 30 40 50 Simple Use of Color In a Plot Edgar Anderson's Iris Data 2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5-2 -1 0 1 2 2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5 Sepal.Length Sepal.Width Petal.Length Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Just a Whisper of a Label 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Distance Between Brownian Motions Notched Boxplots Distance -4-2 0 2 4 6 8 10 0 2 4 6 0 20 40 60 80 100 1 2 3 4 5 6 7 8 9 10

z x y z = Sinc( x 2 + y 2 ).

Vor- und Nachteile von R Vorteile: Open Source Erweiterbarkeit Aktive Community Nachteile: keine grafische Benutzeroberfläche keine interaktive Grafik.

Bezugsquellen für R Informationswebseite: http://r-project.org CRAN: Comprehensive R Archive Network Hauptseite: http://cran.r-project.org Spiegelserver Seiten sind in vielen Ländern verfügbar: z.b. http://cran.us.r-project.org Auf den CRAN Seiten ist R für die unterschiedlichen Distributionen verfügbar.

Installation von R Windows: Download und Ausführung des Installers R-3.3.2-win.exe von CRAN. Setzen des persönlichen Arbeitsverzeichnis. Starten von R: über das Start-Icon über die Datei Rgui.exe

Informationquellen über R Webseite: http://www.r-project.org/ und CRAN FAQ Listen auf CRAN Manuals: z.b. An Introduction in R: (https://cran.r-project.org/doc/manuals/r-intro.pdf) R Data Import/Export: (https://cran.r-project.org/doc/manuals/r-release/r-data.html)

Pakete Standardisierte Form der Entwicklung von R "Verpacken" von Funktionen, Sourcen, Datensätzen und Dokumentation Validierungsmöglichkeiten einfache Verteilung an Dritte, z.b. über CRAN Installation mit install.packages(paketname) Laden mit library(paketname)

R als Taschenrechner > 1 + 1 [1] 2 > a <- 0.5 > b <- a * 2 > exp(b) [1] 2.718282

R Basics Wenn der Funktionsname und anschließend die Return-Taste getippt wird, wird die Funktion angezeigt. Um eine Funktion aufzurufen, muss der Funktionsname zusammen mit der Argumentenliste innerhalb von () eingetippt werden, auch wenn dieses leer ist. Beispiel: > q function (save = "default", status = 0, runlast = TRUE).Internal(quit(save, status, runlast)) <bytecode: 0x7fca0c85e148> <environment: namespace:base> > q() Save workspace image? [y/n/c]: q()[ret] statt q[ret] ist notwendig, um R zu verlassen.

R Basics (2) Hilfe: help(topic)?topic help.search("topic") help.start() Operatoren: +, -, *, /, ^ &, &&,, see help("+") Schleifen: Zuweisung: x = 5 x <- 5 5 -> x Vergleiche: ==,!=, >, >=, <, <= see help("==") Kommentare: alles nach # for, while, if Namen: case sensitive, Buchstaben zu Beginn

R Basics (3) Zuweisung oder Vergleich? > x<-8 > x <- 8 > x < -8 > x<-8 > x [1] 8 > x <- 8 > x [1] 8 Unterschied = und <- > mean(x = 1:10) Error in mean.default (x = 1:10) : unused argument (x = 1:10) > mean(x <- 1:10) [1] 5.5 > x < -8 [1] FALSE

R Basics (4) Elementare Datentypen: Logical: Integer: Double: Complex: Character: Missing value:

R Basics (5) Zusammengesetzte Datentypen: vector: von Elementen desselben elementaren Typs array: Vektor mit Dimensionsattribut (beliebige Anzahl an Dimensionen erlaubt) matrix: 2-dimensionaler Array. Spezialfall, um die üblichen Matrixoperationen wie z.b. Matrixmultiplikation durchführen zu können. factor: Spezieller Vektor für das Kodieren von Klassen. list: Liste von Elementen mit unterschiedlichen Datentypen (elementar als auch zusammengesetzt) data.frame: "Mischung" aus Matrix und Liste Zugriff über [...], Dimensionen durch, getrennt.

Beispiele Vector: x.vec <- c(10.4, 5.6, 3.1, 6.4, 21.7) y.vec <- c("a", "b", "c", "d") z.vec <- c(true, TRUE, TRUE, FALSE) Array: x.array <- array(1:24, dim=c(3,4,2)) Matrix: x.matrix <- array(1:12, dim=c(3,4))

Beispiele (2) Data Frame: > x <- c(2, 5, 8) > y <- c("a", "b", "c") > z <- c(true,true,false) > df <- data.frame(x,y,z) > df x y z 1 2 a TRUE 2 5 b TRUE 3 8 c FALSE

Methoden zur Konstruktion - Matrizen Die Funktionen zur Konstruktion haben dieselben Namen wie die entsprechenden Datentypen. Umwandlung kann mithilfe von as.type erfolgen, Checken des Typs mithilfe von is.type. > x <- matrix(1, nrow=5, ncol=2) > x [,1] [,2] [1,] 1 1 [2,] 1 1 [3,] 1 1 [4,] 1 1 [5,] 1 1 > is.matrix(x) [1] TRUE > is.vector(x) [1] False

Methoden zur Konstruktion - Matrizen (2) > x [,1] [,2] [1,] 1 1 [2,] 1 1 [3,] 1 1 [4,] 1 1 [5,] 1 1 > y <- as.vector(x) > y [1] 1 1 1 1 1 1 1 1 1 1 > is.vector(y) [1] True

Methoden zur Konstruktion - Listen Allgemein: Lst <- list(name_1=object_1,..., name_m=object_m) > x <- list(a="hello", b=1:10, pi=3.1415927) > x $a [1] "Hello" $b [1] 1 2 3 4 5 6 7 8 9 10 $pi [1] 3.141593

Methoden zur Konstruktion - Listen (2) Verbinden von Liste: list.abc<-c(list.a,list.b,list.c) Beispiel: > y <- list(c = "Hello2", d=11:20,bk = 1.38*10^(-23) ) > list.xy <- c(x,y) > list.xy $a [1] "Hello" $b [1] 1 2 3 4 5 6 7 8 9 10 $pi [1] 3.141593 $c [1] "Hello2" $d [1] 11 12 13 14 15 16 17 18 19 20 $bk [1] 1.38e-23

Zugreifen auf Elemente (1) Vektoren: Elemente können über Nummern oder Namen angesprochen werden. > x <- c(5,3,7) > names(x) <- c("apple", "banana","orange") > x["apple"] ## Zugriff über den Namen apple 5 > x[1:2] ## Zugriff über die Nummer apple banana 5 3 > length(x) [1] 3

Zugreifen auf Elemente (2) Arrays: Analog wie bei Vektoren, wobei die Dimension durch Kommata unterteilt werden. > x <- matrix(1:8, ncol=2) > colnames(x) <- c("first", "Second") > x[1:2,] ## Rückgabe einer Matrix First Second [1,] 1 5 [2,] 2 6 > x[,"second"] ## Rückgabe eines Vektors [1] 5 6 7 8

Zugreifen auf Elemente (3) > x[,] First Second [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8 > x[-3,] ## Unterdrücken der dritten Zeile First Second [1,] 1 5 [2,] 2 6 [3,] 4 8 > dim(x) [1] 4 2

Zugreifen auf Elemente (4) Listen: Dollar Zeichen $ oder Nummer in eckigen Klammern > x <- list(a="hello", b=1:10, pi=3.1415927) > x$a [1] "Hello" > x[["a"]] [1] "Hello" > x[[1]] ## Rückgabe des ersten Elements der Liste [1] "Hello" > x[1] ## Rückgabe einer List mit einem Element $a [1] "Hello" > length(x) ## Anzahl der Listenelemente [1] 3

Data Frames Data Frames: Können betrachtet werden als Matrix, wo jede Spalte einen unterschiedlichen Datentyp besitzt. Liste, wo jedes Element ein Vektor derselben Länge ist. Zugriff auf die Elemente analog zu Matrizen oder Liste. attach() ermöglicht den Zugriff auf die Spalten über ihre Namen, wie wenn sie Variablen wären. Beobachtungen mit Missing Values können mithilfe von na.omit() entfernt werden, wodurch die gesamte Zeile gelöscht wird.

attach() Die Funktion attach() legt variablen an, sodass nicht mehr über $ auf die Variablen zugegriffen werden muss. > x <- list(a="hello", b=1:10, pi=3.1415927) > x$a [1] "Hello" > attach(x) > a [1] "Hello" Für den Programmierer geht die Zugehörigkeit von Variable a zur Liste x verloren.

Attribute Attribute ermöglichen die detaillierte Beschreibung des Inhaltes. Ein Array ist z.b. nur ein Vektor mit einem Dimensionsattribut. Weitere häufige Attribute beinhalten Namen für die Zeile oder Spalten einer Matrix, Elemente einer Liste,... > x <- matrix(1:10, ncol = 5) > x [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 > attributes(x) $dim [1] 2 5

Attribute (2) > rownames(x) <- c("eins", "Zwei") > x [,1] [,2] [,3] [,4] [,5] Eins 1 3 5 7 9 Zwei 2 4 6 8 10 > attributes(x) $dim [1] 2 5 $dimnames $dimnames[[1]] [1] "Eins" "Zwei" $dimnames[[2]] NULL

Attribute (3) Anpassung der Spaltennamen: > x a b c d e Eins 1 3 5 7 9 Zwei 2 4 6 8 10 > colnames(x) <- c("a", "b", "c", "d", "e") > attributes(x) $dim [1] 2 5 $dimnames $dimnames[[1]] [1] "Eins" "Zwei" $dimnames[[2]] [1] "a" "b" "c" "d" "e"

Attribute (4) Die as.type() Funktionen löschen alle Attribute, inklusive der Dimension: > x <- matrix(1:10, nrow = 2) > x [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 > as.character(x) [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" > storage.mode(x) <- "character" > x [,1] [,2] [,3] [,4] [,5] [1,] "1" "3" "5" "7" "9" [2,] "2" "4" "6" "8" "10"

Klassen Ein spezielles Attribut jedes Objektes beschreibt seine "Klasse". Dies ermöglicht einfaches objektorientiertes Programmieren und das Überladen von Funktionen. Setzen und Überprüfen der Klasse eines Objektes: > class(z) [1] "numeric" > class(z) <- "newclass" Generische Funktionen verhalten sich unterschiedlich für Objekte verschiedener Klassen.

Klassen (2) > (x <- rep(0:1, c(5,10))) [1] 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 > class(x) [1] "integer" > summary(x) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0000 0.0000 1.0000 0.6667 1.0000 1.0000 > y <- as.factor(x) > summary(y) 0 1 5 10

Funktionen: Formale Definition > function( ARGLIST ) { + Funktionskörper + } Das Schlüsselwort function markiert den Beginn einer Funktionsdefinition. Die Argumente der Funktion werden durch ein mit Komma getrennte Liste von Ausdrücken der Form SYMBOL=AUSDRUCK oder durch das spezielle formale Argument... angegeben. Jeder gültige R Ausdruck kann als Funktionskörper der Funktion verwenden werden, zumeinst ist es ein durch geschwungene Klammern gruppierter Block von Anweisungen. In den meisten Fällen werden Funktionen Symbolen zugewiesen, aber auch anonyme Funktionen sind an gewissen Stellen sehr praktisch.

Funktionen aufrufen > moment function(x, n=2){ sum(x^n)/length(x) } Es wird nur ein Wert zurückgegeben (letztes Statement oder Argument von return). Wenn mehrere Werte zurückgegeben werden sollen, dann können diese in einer Liste zusammengefasst werden. Argumente mit Namen: Bei Aufruf einer Funktion können die Argumente in einer beliebigen Reihenfolge übergeben werden (z.b. moment(n=3,x=x)). Default Werte: Argumente mit Default Werten können beim Aufruf der Funktion weggelassen werden.

Funktionen aufrufen (2) > set.seed(20100322) > y <- rnorm(100) > y[1:4] [1] -0.8607870-0.2587355 1.3743010-2.9897422 > length(y) [1] 100 > moment(y) [1] 0.9785426 > moment(y, 1) [1] -0.2197408 > moment(n = 1, x = y) [1] -0.2197408 > mean(y) [1] -0.2197408 }

median() Der Median eines Vektors kann über die integrierte Funktion median() berechnet werden. median(x, na.rm = FALSE) Argumente: x ein Objekt oder ein numerischer Vektor auf welches die Methode angewendet wird na.rm Ein logischer Wert der entscheidet ob NA Werte berücksichtigt werden oder nicht

rep() Die Funktion rep() repliziert den Wert der übergeben wird. rep(x, times) Argumente: x Meistens ein Vektor times Gibt die Anzahl der Wiederholungen an

mean() Die Funktion mean() gibt das arithmetische Mittel an. mean(x, trim, na.rm = FALSE) Argumente: x Ein Objekt (numeric/logical,vector,...) trim Anteil von links und rechts nachdem der Vektor sortiert wurde. na.rm Löscht vor dem Errechnen des arithmetische Mittel alle Werte mit NA.

apply() Die Funktion apply() gibt einen Vektor, Array oder Liste mit Werten zurück auf die eine Funktion angewendet wurde. apply(x, MARGIN, FUN) Argumente: x Array / Matrix MARGIN Ein Vektor auf den die Funktion angewendet wird. Matrix: 1 = Zeile, 2 = Spalte FUN Funktion die auf den Vektor angewendet werden soll.

transform() Die Funktion transform() kann verwendet werden um eine neue Spalte in einem Datensatz hinzuzufügen dataframe <- transform(dataframe, newcolumn = oldcolumn1 +

Das Argument... Funktionen können beliebig viele unspezifizierte Argumente besitzen, falls die Argumentliste das spezielle Argument... enthält, z.b. max(...,na.rm=false). Eine zweite Verwendungsmöglichkeit ist das Weiterleiten von Argumenten an eine andere Funktion: > myplotfun <- function(x, y, myarg,...) { + ## do some computations using x, y and myarg + ## then call the standard plot function + plot(x, y,...) + } Damit "versteht myplot() zusätzlich zu seinen eigenen Argumenten implizit auch alle Argumente von plot(). x<-list(...) im Körper einer Funktion konvertiert alle unspezifizierten Argumente in eine benannte Liste.

Argumente zusammenfügen Wenn eine Funktion aufgerufen wir, werden die tatsächlichen Argumente des Funktionsaufrufes mit den formalen Argumenten der Funktionsdefinition in der folgenden Reihenfolge zusammengefügt: 1. Alle benannten Argumente deren Namen dem eines formalen Argumentes exakt entspricht. 2. Wenn kein... Argument definiert wurde, genügt eine eindeutige Übereinstimmung am Beginn des Namens. 3. Position in der Argumentliste. 4. Verbleibende tatsächliche Argumente werden Teil von... (falls definiert).

Flusskontrolle Als vollwertige Programmiersprache besitzt S eine Reihe von Strukturen zur Kontrolle des Programmflusses. Iterationen werden durch die Befehle for,while und repeat zur Verfügung gestellt. Für bedingte Auswertungen können if,else und switch() verwendet werden. for und switch werden am häufigsten verwendet.

if-else Befehl > if( Test ) { + Anweisungsblock_1 + } else { + Anweisungsblock_2 + } Wenn der Test den Wert TRUE liefert, wird Anweisungsblock_1 ausgeführt, ansonsten Anweisungsblock_2. Der else-teil ist optional.

if-else Befehl (2) Ein typisches Beispiel für die Verwendung von if: > if (any (x < 0)) + stop("negative Werte in x") Auswahl zwischen mehreren Möglichkeiten: > if (all (x >= 0)) { + sqrt(x) + } else { + sqrt(x + 0i) + }

Einlesen von Daten In R gibt es die Möglichkeit, die Daten aus den verschiedensten Formaten einzulesen. Eine nähere Beschreibung befindet sich in R Data Import/Export (siehe oben). Häufig benötigte Befehle sind: read.table: Einlesen von Daten in Tabellen-Format aus einer Datei und erzeugen eines Data Frames. Wichtige Parameter sind z.b. header, sep. read.csv() und read.csv2() sind spezielle Funktionen für Dateien im CSV-Format, in dem man z.b. excel-dateien abspeichern kann. Bei read.csv2() sind die Einträge durch Strichpunkte getrennt und das Dezimalzeichen ist wie im Deutschen üblich ein Komma. load(): Laden von Daten (und auch Objekten), die in R mit save() gespeichert worden sind.

Plotten von Daten In R gibt es die Möglichkeit, die Daten aus den verschiedensten Formaten einzulesen. Eine nähere Beschreibung befindet sich in R Data Import/Export (siehe oben). Häufig benötigte Befehle sind: read.table: Einlesen von Daten in Tabellen-Format aus einer Datei und erzeugen eines Data Frames. Wichtige Parameter sind z.b. header, sep. read.csv() und read.csv2() sind spezielle Funktionen für Dateien im CSV-Format, in dem man z.b. excel-dateien abspeichern kann. Bei read.csv2() sind die Einträge durch Strichpunkte getrennt und das Dezimalzeichen ist wie im Deutschen üblich ein Komma. load(): Laden von Daten (und auch Objekten), die in R mit save() gespeichert worden sind.

Wichtige Funktionen q(): Beende die Session. Es wird gefragt, ob der Workspace (im File.RData) gespeichert werden soll. help(): Bekomme Hilfeseite für eine Funktion oder ein Objekt. help.start(): Verwende einen Webbrowser für das Lesen der Hilfe. ls(): Liste die Objekte im Workspace auf. rm(): Lösche Objekte im Workspace. save.image(): Speichern des Workspace-Inhalts in einem File. save(): Speichern eines Objekts in einem File. load(): Laden von mit R gespeicherten Daten. example(): Führe das Beispiel auf der Hilfeseite aus. str(): Anzeigen der Struktur eines Objekts. summary(): Fasse die Information über ein Objekt kurz zusammen. plot(): Erstelle eine Graphik für ein Objekt. library(): Laden von zusätzlichen (schon installierten) Packages.

Arithmetische Operatoren Operator Beschreibung + addition - subtraction * multiplication / division ^or ** exponentiation x %% y modulus (x mod y) 5%%2 is 1 x %/% y integer division 5%/%2 is 2

Logische Operatoren Operator Beschreibung < less than <= less than or equal to > greater than >= greater than or equal to == exactly equal to!= not equal to!x Not x x y x OR y x & y x AND y istrue(x) test if x is TRUE

Referenzen 1. http://www.statistik.lmu.de/institut/ag/biostat/vorlesungen/ss13/ Stochastik/R-intro-4.pdf