Datenanalyse und Visualisierung mit R

Werbung
Datenanalyse und Visualisierung mit R
Datenanalyse und Visualisierung mit R
Übung zu praktischen Arbeitsmethoden
Modul MT 3
Di, 14:00-15:30, 3065/D3
Datenanalyse und Visualisierung mit R
Was ist R?:
R
„A Language for Data Analysis and Graphics“
Open Source Software für (statistische) Datenanalyse und Graphik
Quellcode – CRAN (Comprehensive R Archive Network)
http://CRAN.R-project.org
Historie von R:
1976:
Entwicklung von S in den Bell Laboratories
bei AT&T
(Programmiersprache für Statistik,
stochastische Simulation und Grafik)
1984:
2. Version von S; 1. Begleitbuch
1992:
Einführung objektorientierter Ansätze
Historie von R:
1998:
Version 4 von S
seit 1988: kommerzielle Implementation von S
(S-PLUS)
Historie von R:
seit 1992: R als freie Implementation von S,
Ross Ihaha & Robert Gentleman
1993:
erste Binärversion auf Statlib veröffentlicht
1995:
R unter GPL
1997:
R-Development Core Team
1998:
Comprehensive R Archive Network (17 Pers.)
2000:
R (Version 1.0.0) erscheint
(vollständig kompatibel zu S)
Historie von R:
2002:
Gründung der R-Foundation
2004:
R-2.0.0
2009:
R-2.8.1
2010:
R-2.12.0
Warum R?:
Vorteile von R
- Open Source (GPL), d. h. keine Black Box
- plattformunabhängig (Unix/Linux, Windows, Mac)
- Aktualität
- Support (Core Team und Usergemeinschaft)
- schnelle Fehlerbeseitigung
- Kommunikation mit Programmiersprachen (Fortran, C)
- Batchbetrieb, Automatisierung
Warum R?:
Nachteile von R
-
keine (überzeugende) GUI
-
Kommandozeile und Skripts “gewöhnungsbedürftig”
-
keine dynamische oder interaktive Graphik in R
(aber Erweiterungspakete bzw. Schnittstellen)
-
Geschwindigkeit (R ist Interpretersprache)
Hilfe zu R:
Hilfe zu R
-
innerhalb von R
z.B. help(), help.start(), help.search(), ?help(), apropos(), ...
-
online
z.B.
http://cran.r-project.org/
http://CRAN.R-project.org/other-docs.html
-
Handbücher (online) mit help.start() oder auf CRAN
-
Bücher (offline)
z.B. „Modern Applied Statistics with S (Venables & Ripley, 2002)
-
Mailinglisten
Basics zu R:
R-Workspace
-
enthält alle Objekte der aktuellen R-Sitzung
-
im aktuellen Arbeitsverzeichnis (Working Directory)
(Verzeichnis aus dem R gestartet wurde)
getwd()
Anzeigen des aktuellen Arbeitsverzeichnis
setwd(“Pfadangabe”)
Festlegen des aktuellen Arbeitsverzeichnis
ls()
Anzeigen aller Objekte im Workspace
rm(“Objektname”)
Löschen eines Objekts aus dem Workspace
save.image()
Speichern des aktuellen Workspace
load(“Dateiname”)
Laden eines gespeicherten Workspace
Optionales Speichern des Workspace
beim Beenden (q()) von R
Basics zu R:
R-Workspace
-
gespeicherter Workspace in .Rdata
-
“History” der letzten R-Sitzung in .Rhistory
(savehistory(), loadhistory())
Basics zu R:
R-Objekte
-
Alles in R ist ein Objekt!
(Vektoren, Matrizen, Arrays, Funktionen, ...)
-
Objekte werden Klassen zugeordnet,
die bestimmte Eigenschaften festlegen
-
Spezielle Methoden bestimmter Funktionen für verschiedene Klassen
Objektnamen:
- Beginnen mit Buchstaben
- Buchstaben, Zahlen, Sonderzeichen
- keine Leerzeichen
- keine unerlaubten Sonderzeichen
- casesensitive
- Punkt am Anfang bedeutet verstecktes Objekt
Basics zu R:
R-Objekte
class(objektname)
Klasse eines Objekts
length(objektname)
Länge eines Objekts
attributes(objektname)
Attribute eines Objekts
structure(objektname)
Struktur eines Objekts
mode(objektname)
Datentyp eines Objekts
Basics zu R:
Datentypen und Datenstrukturen in R
Datentypen:
Beschreibung
Beispiel
Datentyp
leere Menge
NULL
NULL
logische Werte
FALSE
logical
ganze und reelle Zahlen 3.14
numeric
komplexe Zahlen
2.13+1i
complex
Zeichenfolgen
“Text”
character
Basics zu R:
Datentypen und Datenstrukturen in R
Datentypen:
Beschreibung
Beispiel
Datentyp
leere Menge
NULL
NULL
logische Werte
FALSE
logical
ganze und reelle Zahlen 3.14
numeric
komplexe Zahlen
2.13+1i
complex
Zeichenfolgen
“Text”
character
(Interner) Speichermodus:
2 Varianten für numeric: integer oder double
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Beispiel
Datenstruktur
Vektor
vector
Matrix
matrix
(2-dim)
Feld
array
(1 bis n-dim)
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Vektor
Beispiel
1
3
2
7
Datenstruktur
4
Matrix
vector
matrix
(2-dim)
Feld
array
(1 bis n-dim)
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Vektor
Matrix
(2-dim)
Feld
Beispiel
Datenstruktur
1
3
2
7
4
45
5
3
12
6
11
4
2
3
65
41
6
32
7
14
vector
matrix
array
(1 bis n-dim)
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Beispiel
Datenstruktur
21 23 23 47 24
Vektor
Matrix
1
(2-dim)
45
Feld
11
48 5 3 12 46
3 2 7 4
14 4 2 3 35
5 3 12 6
51 62 2 27 54
4 2 3 65
(1 bis n-dim)
41
6
32
7
vector
matrix
array
14
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Beispiel
1
3
2
Matrix
45
5
3
(2-dim)
11
4
2
Feld
41
6
32
Vektor
7
Datenstruktur
4
vector
matrix
array
(1 bis n-dim)
Liste
ad ce fh ed
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Beispiel
Datenstruktur
Vektor
1
a
TRUE
7.4
vector
Matrix
45
d
TRUE
12.3
matrix
(2-dim)
11
we
FALSE
3.2
Feld
41
rt
TRUE
7.0
array
(1 bis n-dim)
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
data.frame
(Spezialfall der Liste; Elemente müssen Vektoren gleicher Länge sein)
Basics zu R:
Datentypen und Datenstrukturen in R
Datenstrukturen:
Beschreibung
Skalar
Beispiel
In R repräsentiert durch einen Vektor der Länge 1
Vektor
Matrix
Datenstruktur
vector
31
matrix
(2-dim)
Feld
array
(1 bis n-dim)
Liste
list
(enthalten Elemente unterschiedlicher Datenstruktur)
Datensatz
(Liste; Elemente müssen Vektoren gleicher Länge sein)
data.frame
Basics zu R:
Datentypen und Datenstrukturen in R
typeof(objektname)
Speichermodus eines Objekts
is.numeric(objektname)
Hat ein Objekt einen bestimmten Datentyp?
is.character(objektname)
“
is.matrix(objektname)
“
allgemein:
is.Datentyp(objektname)
oder
is.Datenstruktur(objektname)
Erzwingen eines Datentyps / einer Datenstruktur:
as.Datentyp(objektname)
oder
as.Datenstruktur(objektname)
Basics zu R:
Datenimport und -export in R
Import von ASCII-Daten:
read.table(dateiname)
Einlesen eines Datensatzes in Tabellenform
read.fwf(dateiname)
Feste Spaltenbreite
read.csv(dateiname)
Kommaseparierte Spalten
Basics zu R:
Datenimport und -export in R
Export von ASCII-Daten:
write.table(dateiname)
Schreiben eines Datensatzes in Tabellenform
Basics zu R:
Datenimport und -export in R
Speichern und Laden von R Objekten:
save(objektname, file=dateiname)
Speichern eines R Objekts in
externe Datei
load(dateiname)
Laden eines R Objekts aus
externer Datei
Basics zu R:
Fehlende Werte (missing values) in R
Berücksichtigung von missing values:
read.table(dateiname, na.strings=”NA-Indikator”)
beim Einlesen aus
externer Datei
functionname(..., na.rm=TRUE)
beim Funktionsaufruf
Basics zu R:
Indizierung verschiedener Datenstrukturen
Indizierung von Vektoren:
a <-
1
3
2
7
a <- c(1, 3, 2, 7, 4)
a[ ]
a[1]
a[1 : 3]
a[c(4, 1, 3)]
4
Basics zu R:
Indizierung verschiedener Datenstrukturen
Indizierung von Matrizen:
b <-
45
5
3
11
4
2
41
6
32
b <- c(45, 5, 3, 11, 4, 2, 41, 6, 32)
c <- matrix(b, nrow = 3, ncol = 3, byrow=TRUE)
c[ , ]
c[1, ]
c[, 3]
c[2, 2]
c[3 : 2, c(1, 3)]
Basics zu R:
Indizierung verschiedener Datenstrukturen
14 4
3
51 62
Indizierung von Arrays:
d <-
11
4
41
6
d <- c(11, 41, 4, 6, 14, 51, 4, 62)
e <- array(d, dim = c(2, 2, 2))
e[ , , ]
e[1, , ]
e[2, 2, 2]
Basics zu R:
Indizierung verschiedener Datenstrukturen
Indizierung von Listen:
f <-
1
3
1
3
2
4
2
7
4
ad ce fh ed
f <- list(c(1,3,2,7,4), matrix(1:4, 2), c(”ad”, “ce”, “fh”, “ed”))
f[[1]]
f[[2]] [1,]
f <- list(f1 = c(1,2,4,5), f2 = matrix(1:4, 2))
f$f1
Basics zu R:
Indizierung verschiedener Datenstrukturen
Indizierung von Data Frames:
wie bei Matrizen oder wie bei Listen!
Herunterladen