Grundlagen der R Programmiersprache

25
Grundlagen der R Programmiersprache Modul G WS 07/08

description

Grundlagen der R Programmiersprache. Modul G WS 07/08. Besteht aus einem oder mehrerern Elementen. x = 3 meinedatei = c(10, 20, -4) foo = c("IPDS", "Phonetik", “Leibnizstr. 10", 2007, "WS"). Besteht aus TRUE und FALSE. Objekte. Vektor. Matrix. Eine Zusammensetzung aus Vektoren - PowerPoint PPT Presentation

Transcript of Grundlagen der R Programmiersprache

Page 1: Grundlagen der R Programmiersprache

Grundlagen der R Programmiersprache

Modul G WS 07/08

Page 2: Grundlagen der R Programmiersprache

ObjekteVektorBesteht aus einem oder mehrerern Elementenx = 3meinedatei = c(10, 20, -4)foo = c("IPDS", "Phonetik", “Leibnizstr. 10", 2007, "WS")

Matrix

Logischer VektorBesteht aus TRUE und FALSE

Eine Zusammensetzung aus Vektoren

rbind() und cbind()

SkalarEine skalare Variable speichert eine einzelne Zahl (Skalar).

Page 3: Grundlagen der R Programmiersprache

Vektoren: Zugriff auf Elemente

foo = c("IPDS", "Phonetik", "Leibnizstr. 10", 2007, "WS")

foo[2] foo[2:4]

foo[-3]Alle Elemente außer “Leibnizstr. 10"

Elemente 2 und 5

foo[c(2, 5)] odera = c(2, 5)foo[a]

Page 4: Grundlagen der R Programmiersprache

Arithmetische Funktionen

werden immer parallel auf Vektoren angewendet

x = c(10, 20, 30)y = c(-5, 0, 10)x * y[1] -50 0 300

Die length() Funktionwieviele Elemente in einem Vektor?

length(x)[1] 3length(y)[1] 3length(x)==length(y)[1] TRUE

Page 5: Grundlagen der R Programmiersprache

Matrizen

x = c(10, 20, 30)y = c(-5, 0, 10)mat = rbind(x, y)

mat [,1] [,2] [,3]x 10 20 30y -5 0 10

rbind(): Reihenverbindung cbind(): Spaltenverbindung

mat2 = cbind(x, y)

mat2 x y[1,] 10 -5[2,] 20 0[3,] 30 10

Reihenanzahlnrow(mat)[1] 2Spaltenanzahlncol(mat)[1] 3

Dimensionenanzahldim(mat)[1] 2 3

Page 6: Grundlagen der R Programmiersprache

Matrizen und Dimensionennamen

mat2 x y[1,] 10 -5[2,] 20 0[3,] 30 10

xnamen = c("Gruppe A", "Gruppe B", "Gruppe C")ynamen = c("Erg. 1", "Erg. 2")dimnames(mat2) = list(xnamen, ynamen)mat2 Erg. 1 Erg. 2Gruppe A 10 -5Gruppe B 20 0Gruppe C 30 10

Dimensionen-Namen geben: dimnames()

Page 7: Grundlagen der R Programmiersprache

dimnames(mat2) = NULLmat2 [,1] [,2][1,] 10 -5[2,] 20 0[3,] 30 10

Dimensionen-Namen entfernen...

Page 8: Grundlagen der R Programmiersprache

Matrizen und Arithmetische Vorgänge

werden wie bei Vektoren parallel durchgeführt

mat [,1] [,2] [,3]x 10 20 30y -5 0 10

mat -20 [,1] [,2] [,3]x -10 0 10y -25 -20 -10

Page 9: Grundlagen der R Programmiersprache

a [,1] [,2] [,3] [,4] 10 3 8 7 11 45 20 -1b [,1] [,2] [,3] [,4] 20 6 16 14 22 90 40 -2 a + b [,1] [,2] [,3] [,4] 30 9 24 21 33 135 60 -3

Page 10: Grundlagen der R Programmiersprache

Anwendung von Funktionen auf Matrizen

mat [,1] [,2] [,3]x 10 20 30y -5 0 10mean(mat)[1] 10.83333(Durchschnitt aller Elemente)

Durchschnitt der Reihenapply(mat, 1, mean) x y 20.000000 1.666667

Zentralwert der Spalten

apply(mat, 2, median)[1] 2.5 10.0 20.0

Page 11: Grundlagen der R Programmiersprache

Zugriff auf Elemente einer Matrix

mat [,1] [,2] [,3]x 10 20 30y -5 0 10 mat[2,3] bedeutet: Reihe 2, Spalte 3[1] 10

Nur Reihe 2mat[2,][1] -5 0 10Nur Spalte 3mat[,3] x y 30 10

Reihen: Vor dem Komma

Spalten: Nach dem Komma

Vektoren: Eine einzige Zahl OHNE KOMMA

Page 12: Grundlagen der R Programmiersprache

Zugriff auf Elemente einer Matrix

Reihen 2 bis 8

Spalten 1 und 3

Reihen 2 bis 8 von Spalten 1 und 3

Spalte 1 von Reihen 2 und 4

Reihen 1-3 aller Spalten außer Spalte 2

bridge[2:8,]

bridge[,c(1,3)]

bridge[2:8,c(1,3)]

bridge[c(2,4),1]

bridge[1:3,-2]

bridge ist eine Matrix

Page 13: Grundlagen der R Programmiersprache

Logischer Vektor

temp = c(T, F, T)temp[1] TRUE FALSE TRUE

= Ein Vektor aus TRUE und FALSE Elementen

| bedeutet "oder"T | T [1] TF | F [1] FT | F [1] T

& bedeutet "und"T & T [1] TF & F [1] FT & F [1] F

Das Ergebnis von TRUE und TRUE ist TRUE

Logische Vektoren folgen einer Boolean-Logik

Page 14: Grundlagen der R Programmiersprache

(T & F) | T

[1] TRUE

( (T | F ) & (T & T) | F)

[1] TRUE

Klammern

Material innerhalb ( ) wird zuerst bearbeitet

Page 15: Grundlagen der R Programmiersprache

Wieviele T? Wieviele F? sum()

any(vec)[1] TRUEany(!vec)[1] TRUE

Logische Vektoren, sum() und any()

vec2 = c(F, F, F, F)

any(vec2)[1] FALSEany(!vec2)[1] TRUE

Gibt es mindestens einen T? Oder mindestens einen F?

sum(any(!vec2))

[1] 1

vec = c(T, T, F, T, F)sum(vec)[1] 3sum(!vec)[1] 2

any()

Page 16: Grundlagen der R Programmiersprache

Vergleichungs-Operator

x == y gleicht x y? != gleicht nichtx < y ist x weniger als y? > größer als

<= weniger oder gleichtx %in% y ist y in x enthalten?

x = c(10, 20, 30)

y = 20

x == y

[1] FALSE TRUE FALSE

x == 20

[1] FALSE TRUE FALSE

Erster Fall: y besteht aus einem Element

Page 17: Grundlagen der R Programmiersprache

Vergleichungs-Operator

Zweiter Fall. x und y sind zueinander parallel (und bestehen daher aus der selben Anzahl von Elementen)

x = c(10, 20, 30)

y = c(9, 50, 30)

x == y

[1] FALSE FALSE TRUE

Page 18: Grundlagen der R Programmiersprache

Vergleichungs-Operator%in%labs = c("I", "E", "O", "O", "O","I", "E")

labs %in% "E" (kommt "E" in labs vor?)[1] FALSE TRUE FALSE FALSE FALSE FALSE TRUE

labs %in% c("I", "E") (kommen "E" oder "I" in labs vor?) [1] TRUE TRUE FALSE FALSE FALSE TRUE TRUE

y = c("I", "E")Dasselbe:

labs %in% y

[1] TRUE TRUE FALSE FALSE FALSE TRUE TRUE

Page 19: Grundlagen der R Programmiersprache

x = c(23, 5, 45, -10, 11)

 

lvec = x > 20

[1] TRUE FALSE TRUE FALSE FALSE

Zugriff auf Elemente durch [logische Vektoren]

> x[lvec] bedeutet: die Elemente in x, für die lvec TRUE ist

[1] 23 45

x[!lvec]

[1] 5 -10 11

Page 20: Grundlagen der R Programmiersprache

 

Meine Freundefreunde = c("Paul", "Karin", "Elke", "Georg", "Peter")Die Dauer (Min.) um in die Arbeit zu kommenzeit = c(50, 11, 35, 41, 12)

temp = zeit > 40

[1] TRUE FALSE FALSE TRUE FALSE

temp

freunde[temp]

Was ist (a) die Bedeutung (in Wörtern) und (b) das Ergebnis von:

(a) Bedeutung: die Freunde, die länger als 40 Minuten brauchen, um in die Arbeit zu kommen.

(b) [1] "Paul" "Georg"

Welche Dauern sind größer als 40?

Page 21: Grundlagen der R Programmiersprache

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter")

zeit = c(50, 11, 35, 41, 12)

Schreiben Sie R-Befehle für: Welche Freunde brauchen 41 Minuten, um in die Arbeit zu kommen?

temp = zeit == 41freunde[temp][1] "Georg"

oderfreunde[zeit == 41]

[1] "Georg"

Page 22: Grundlagen der R Programmiersprache

Schreiben Sie R-Befehle für: Welcher Freund braucht am längsten?Hier muss auch die max() Funktion verwendet werden:y = c(10, 20, 30)max(y)[1] 30

temp = zeit == max(zeit)freunde[temp][1] "Paul"Oderfreunde[zeit == max(zeit)][1] "Paul"

Page 23: Grundlagen der R Programmiersprache

R-Befehle für: welcher Freund braucht zwischen 25 und 45 Minuten?

        (die Freunde, die mehr als 25 Minuten brauchen)

&

        (die Freunde, die weniger als 45 Minuten brauchen)

temp = (zeit > 25) & (zeit < 45)

freunde[temp]

[1] "Elke" "Georg"

Page 24: Grundlagen der R Programmiersprache

R-Befehle für: Wieviele Freunde brauchen weniger als 40 Minuten?

sum()temp = zeit < 40

sum(temp)

[1] 3

Odersum(zeit < 40)

Page 25: Grundlagen der R Programmiersprache

Gibt es Freunde, die mehr als 45 Minuten brauchen?

any()

temp = zeit > 45any(temp)[1] TRUE oder in einer Zeile: any(zeit > 45)[1] TRUE