Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen der R Programmiersprache

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen der R Programmiersprache"—  Präsentation transkript:

1 Grundlagen der R Programmiersprache
Jonathan Harrington

2 Objekte Vektor Besteht aus einem oder mehrerern Elementen Matrix
meinedatei = c(10, 20, -4) foo = c("IPSK", "Phonetik", "Schellingstr 3", 2006, "WS") Matrix Eine Zusammensetzung aus Vektoren rbind() und cbind() Das Ziel besteht darin, die Anwendung von drei verschiedenen Objekten in R zu erklären: Vektoren, Matrizen, logischen Vektoren. Diese ppt Presentation ist eine Zusammenfassung von dem Material in R.doc/pdf der Modul-G-Webseite. Logischer Vektor Besteht aus TRUE und FALSE

3 Vektoren: Zugriff auf Elemente
foo = c("IPSK", "Phonetik", "Schellingstr 3", 2006, "WS") foo[2] foo[2:4] foo[-3] Alle Elemente außer "Schellingstr 3" Elemente 2 und 5 foo[c(2, 5)] oder a = c(2, 5) foo[a]

4 Arithmetische Funktionen
werden immer parallel auf Vektoren angewendet x = c(10, 20, 30) y = c(-5, 0, 10) x * y [1] Die length() Funktion wieviele Elemente in einem Vektor? length(x) [1] 3 length(y) length(x)==length(y) [1] TRUE

5 Matrizen Reihenanzahl Dimensionenanzahl dim(mat) Spaltenanzahl [1] 2 3
rbind(): Reihenverbindung cbind(): Spaltenverbindung mat2 = cbind(x, y) mat2 x y [1,] 10 -5 [2,] 20 0 [3,] 30 10 x = c(10, 20, 30) y = c(-5, 0, 10) mat = rbind(x, y) mat [,1] [,2] [,3] x y Reihenanzahl nrow(mat) [1] 2 Spaltenanzahl ncol(mat) [1] 3 Dimensionenanzahl dim(mat) [1] 2 3

6 Matrizen und Dimensionennamen
x y [1,] 10 -5 [2,] 20 0 [3,] 30 10 Dimensionen-Namen geben: dimnames() xnamen = c("Gruppe A", "Gruppe B", "Gruppe C") ynamen = c("Erg. 1", "Erg. 2") dimnames(mat2) = list(xnamen, ynamen) mat2 Erg. 1 Erg. 2 Gruppe A Gruppe B Gruppe C

7 Dimensionen-Namen entfernen...
dimnames(mat2) = NULL mat2 [,1] [,2] [1,] [2,] [3,]

8 Matrizen und Arithmetische Vorgänge
werden wie bei Vektoren parallel durchgeführt mat [,1] [,2] [,3] x y mat -20 x y

9 a [,1] [,2] [,3] [,4] b a + b Hier betonen, dass die Arithmetik parallel angewendet wird

10 Anwendung von Funktionen auf Matrizen
[,1] [,2] [,3] x y mean(mat) [1] (Durchschnitt aller Elemente) Zentralwert der Spalten apply(mat, 2, median) [1] Durchschnitt der Reihen apply(mat, 1, mean) x y

11 Zugriff auf Elemente einer Matrix
[,1] [,2] [,3] x y   mat[2,3] bedeutet: Reihe 2, Spalte 3 [1] 10 Nur Reihe 2 mat[2,] [1] Nur Spalte 3 mat[,3] x y 30 10 Reihen: Vor dem Komma Spalten: Nach dem Komma Vektoren: Eine einzige Zahl OHNE KOMMA

12 Zugriff auf Elemente einer Matrix
bridge ist eine Matrix Reihen 2 bis 8 bridge[2:8,] bridge[,c(1,3)] Spalten 1 und 3 bridge[2:8,c(1,3)] Reihen 2 bis 8 von Spalten 1 und 3 Lass Dir von den Studenten jeweils die Antwort geben, bevor Du die Antwort gibst (jede Antwort erscheint nach Mausklick). Spalte 1 von Reihen 2 und 4 bridge[c(2,4),1] Reihen 1-3 aller Spalten außer Spalte 2 bridge[1:3,-2]

13 Logische Vektoren vowlax.fdat.5[1:3,] eine 410 x 4 Matrix der F1-F4 Werte dieser Vokale zum zeitlichen Mittelpunkt F1-F4 der ersten 3 Vokale T1 T2 T3 T4 410 Vokal-Labels vowlax.l length(vowlax.l) [1] 410 table(vowlax.l) vowlax.l a E I O Hier betonen, dass labs und datan zueinander parallel sind (Element n von labs entspricht Reihe n von daten). Dimension-namen (die Zeiten, zu denen diese Werte vorkommen) die Werte dieser Vokale: vowlax.l[1:3]

14 Wir wollen den durchschnittlichen F2 aller "a“ Vokale berechnen.
Dafür werden logische Vektoren benötigt…

15 Logischer Vektor = Ein Vektor aus TRUE und FALSE Elementen
temp = c(T, F, T) temp [1] TRUE FALSE TRUE Logische Vektoren folgen einer Boolean-Logik | bedeutet "oder" T | T [1] T F | F [1] F T | F [1] T & bedeutet "und" T & T [1] T F & F [1] F T & F [1] F Das Ergebnis von TRUE und TRUE ist TRUE

16 Klammern Material innerhalb ( ) wird zuerst bearbeitet (T & F) | T
[1] TRUE Lass die Studenten die Antwort von ( (T | F ) & (T & T) | F) bevor Du sie per Mausklick erscheinen lässt ( (T | F ) & (T & T) | F) [1] TRUE

17 Logische Vektoren, sum() und any()
Wieviele T? Wieviele F? sum() vec = c(T, T, F, T, F) sum(vec) [1] 3 sum(!vec) [1] 2 Gibt es mindestens einen T? Oder mindestens einen F? any() vec2 = c(F, F, F, F) any(vec2) [1] FALSE any(!vec2) [1] TRUE Lass Dir die Antwort von sum(any(!vec)) geben, bevor Du sie per Mausklick erscheinen lässt any(vec) [1] TRUE any(!vec) sum(any(!vec2)) [1] 1

18 Vergleichungs-Operator
x == y gleicht x y? != gleicht nicht x < y ist x weniger als y? > größer als <= weniger oder gleicht x %in% y ist y in x enthalten? x = c(10, 20, 30) y = 20 x == y [1] FALSE TRUE FALSE x == 20 Erster Fall: y besteht aus einem Element

19 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

20 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

21 Zugriff auf Elemente durch [logische Vektoren]
x = c(23, 5, 45, -10, 11) lvec = x > 20 [1] TRUE FALSE TRUE FALSE FALSE > x[lvec] bedeutet: die Elemente in x, für die lvec TRUE ist [1] 23 45 x[!lvec] [1]

22 Die Dauer (Min.) um in die Arbeit zu kommen
Meine Freunde freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") Die Dauer (Min.) um in die Arbeit zu kommen zeit = c(50, 11, 35, 41, 12) Welche Dauern sind größer als 40? temp = zeit > 40 temp [1] TRUE FALSE FALSE TRUE FALSE freunde[temp] Was ist (a) die Bedeutung (in Wörtern) und (b) das Ergebnis von: Lass Dir von den Studenten die Antworten auf (a) und (b) geben, bevor Du sie per Mausklick erscheinen lässt. (Diese ist eine komplizierte Frage, und die wenigsten werden die Anwort(en) bekommen. (a) Bedeutung: die Freunde, die länger als 40 Minuten brauchen, um in die Arbeit zu kommen. (b) [1] "Paul" "Georg"

23 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 == 41 freunde[temp] [1] "Georg" oder freunde[zeit == 41]

24 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" Oder freunde[zeit == max(zeit)] Für Folien 21-24, lass Dir von den Studenten die Antworten zuerst geben, bevor Du sie per Mausklick erscheinen lässt

25 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"

26 R-Befehle für: Wieviele Freunde brauchen weniger als 40 Minuten? sum()
temp = zeit < 40 sum(temp) [1] 3 Oder sum(zeit < 40)

27 Gibt es Freunde, die mehr als 45 Minuten brauchen? any()
temp = zeit > 45 any(temp) [1] TRUE oder in einer Zeile: any(zeit > 45)

28 dim(bridge) [1] 13 3 Mon Tues Wed bridge Die Elemente von Reihe 1, die größer als 30 sind (logischer Vektor verwenden) temp = bridge[,1] > 30 bridge[temp,1] Alle Reihen von bridge, für die die Werte in Reihe 1 größer als 30 sind bridge[temp,] Mon Tues Wed

29 Logische Vektoren Ein Vektor von 410 Vokal-Etikettierungen
Eine Matrix der F1-F4 Werte zum zeitlichen Mittelpunkt vowlax.l vowlax.fdat.5 table(vowlax.l) dim(vowlax.fdat.5) x = c(10, 15, 18) mean(x) [1] F2- Durchschnitt aller "a" Vokale? temp = vowlax.l == "a" mean(vowlax.fdat.5[temp,2]) [1]

30 Seite 31 von Aufgaben 1 (Vektoren) und 2 (Matrizen) von:
A sketch of the R Programming language and environment (in Harrington, J. forthcoming, The Phonetic Analysis of Speech Corpora. Blackwell): doc, pdf.


Herunterladen ppt "Grundlagen der R Programmiersprache"

Ähnliche Präsentationen


Google-Anzeigen