Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Logische Vektoren in R Jonathan Harrington.

Ähnliche Präsentationen


Präsentation zum Thema: "Logische Vektoren in R Jonathan Harrington."—  Präsentation transkript:

1 Logische Vektoren in R Jonathan Harrington

2 Logische Vektoren Segmentliste werden für Auswahl benötigt
Die Dauer aller "E" Vokale Die Segmente, für die F1 über 700 Hz liegt Die Etikettierungen der Segmente mit einer Dauer zwischen 100 und 200 ms. Segmentliste vowlax Label-Vektor vowlax.l Trackdatei vowlax.fdat (Formant-Werte zum Segment-Onset) on = dcut(vowlax.fdat, 0, prop=T)

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

4 Klammern Material innerhalb ( ) wird zuerst bearbeitet (T & F) | T
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) TRUE

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

6 Ein logischer Vektor entseht durch die Anwendung von einem 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 FALSE TRUE FALSE x == 20 Erster Fall: y besteht aus einem Element

7 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 FALSE FALSE TRUE

8 Vergleichungs-Operator
%in% labs = c("I", "E", "O", "O", "O","I", "E") labs %in% "E" (kommt "E" in labs vor?) FALSE TRUE FALSE FALSE FALSE FALSE TRUE dasselbe labs == "E" labs %in% c("I", "E") (kommen "E" oder "I" in labs vor?) TRUE TRUE FALSE FALSE FALSE TRUE TRUE dasselbe labs == "E" | labs == "I"

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

10 Die Dauer (Min.), die sie brauchen, um in die Arbeit zu kommen
Einige Bekannte freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") Die Dauer (Min.), die sie brauchen, um in die Arbeit zu kommen zeit = c(50, 11, 35, 41, 12) Welche Dauern sind größer als 40? temp = zeit > 40 temp 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) "Paul" "Georg"

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

12 Schreiben Sie R-Befehle für: Welcher Freund braucht am längsten?
freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12) 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) 30 Für Folien 21-24, lass Dir von den Studenten die Antworten zuerst geben, bevor Du sie per Mausklick erscheinen lässt temp = zeit == max(zeit) freunde[temp] "Paul" Oder freunde[zeit == max(zeit)]

13 R-Befehle für: welcher Freund braucht zwischen 25 und 45 Minuten?
freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12) 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] "Elke" "Georg"

14 R-Befehle für: Wieviele Freunde brauchen weniger als 40 Minuten? sum()
freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12) R-Befehle für: Wieviele Freunde brauchen weniger als 40 Minuten? sum() temp = zeit < 40 sum(temp) 3 Oder sum(zeit < 40)

15 Gibt es Freunde, die mehr als 45 Minuten brauchen? any()
freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12) Gibt es Freunde, die mehr als 45 Minuten brauchen? any() temp = zeit > 45 any(temp) TRUE oder in einer Zeile: any(zeit > 45)

16 Logische Vektoren und Matrizen
(Formant-Werte zum zeitlichen Mittelpunkt) Segmentliste Label-Vektor Trackdatei vowlax vowlax.l vowlax.fdat on = dcut(vowlax.fdat, 0, prop=T) Ein Vektor der F1-Werte zum Formant-Onset für "a" erzeugen Logischer Vektor um "a" zu identifizieren temp = vowlax.l == "a" Die F1-Werte zum Formant-Onset für "a" on[ , ] temp 1

17 F1 und F2 von "a" und "E" (zum Formant-Onset)
(Formant-Werte zum zeitlichen Mittelpunkt) Segmentliste Label-Vektor Trackdatei vowlax vowlax.l vowlax.fdat on = dcut(vowlax.fdat, 0, prop=T) F1 und F2 von "a" und "E" (zum Formant-Onset) Logischer Vektor um "a" und "E" zu identifizieren vowlax.l %in% c("a", "E") temp = Die F1- und F2-Werte zum Formant-Onset für "a" und "E" on[ , ] temp 1:2

18 Die Etikettierungen davon
(Formant-Werte zum zeitlichen Mittelpunkt) Segmentliste Label-Vektor Trackdatei vowlax vowlax.l vowlax.fdat on = dcut(vowlax.fdat, 0, prop=T) Die Vokal-Etikettierungen, für die F1 (zum Onset) höher ist als 750 Hz. Logischer Vektor um F1-Werte zu identifizieren, die höher als 750 Hz sind. on[,1] > 750 temp = Die Etikettierungen davon vowlax.l[temp] "a" "a" "a" "a" "a" "a" "a" "a" "E" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a"

19 Die entsprechenden Segmente aus der Segmentliste
(Formant-Werte zum zeitlichen Mittelpunkt) Segmentliste Label-Vektor Trackdatei vowlax vowlax.l vowlax.fdat on = dcut(vowlax.fdat, 0, prop=T) Die Segmente (aus der Segmentliste) für die F2 – F1 unter 400 Hz liegt. Logischer Vektor um zu identifizieren, fuer welche Segmente (Reihen der Matrix on) F2 – F1 (zum Formant-Onset) unter 400 Hz liegt. temp = on[,2] - on[,1] < 400 Die entsprechenden Segmente aus der Segmentliste vowlax[temp,] segment list from database: kielread query was: Kanonic=a | E | I | O labels start end utts I K67MR096 I K68MR001 ...

20 F3 Mittelwert für diese Vokale
(Formant-Werte zum zeitlichen Mittelpunkt) Segmentliste Label-Vektor Trackdatei vowlax vowlax.l vowlax.fdat on = dcut(vowlax.fdat, 0, prop=T) Der F3-Mittelwert von "E" Vokalen, in denen F1 (zum Formant-Onset) über 700 Hz liegt. Logischer Vektor um "E" Vokale & F1-Werte über 700 Hz zu identifizieren vowlax.l == "E" on[,1] > 700 & temp = F3 Mittelwert für diese Vokale 3027 mean(on[temp,3])


Herunterladen ppt "Logische Vektoren in R Jonathan Harrington."

Ähnliche Präsentationen


Google-Anzeigen