Logische Vektoren in R Jonathan Harrington Logische Vektoren

  • Slides: 20
Download presentation
Logische Vektoren in R Jonathan Harrington

Logische Vektoren in R Jonathan Harrington

Logische Vektoren Segmentliste vowlax Label-Vektor werden für Auswahl benötigt Die Dauer aller "E" Vokale

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

Logischer Vektor = Ein Vektor aus TRUE und FALSE Elementen temp = c(T, F,

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 "und" Das Ergebnis von T & T TRUE und TRUE T ist TRUE F & F F T & F F | bedeutet "oder" T | T F | F T | T T F F

Klammern Material innerhalb ( ) wird zuerst bearbeitet (T & F) | T TRUE

Klammern Material innerhalb ( ) wird zuerst bearbeitet (T & F) | T TRUE ( (T | F ) TRUE & (T & T) | F)

Logische Vektoren, sum() und any() Wieviele T? Wieviele F? sum() vec = c(T, T,

Logische Vektoren, sum() und any() Wieviele T? Wieviele F? sum() vec = c(T, T, F) sum(vec) 3 sum(!vec) 2 Gibt es mindestens einen T? Oder mindestens einen F? any() vec 2 = c(F, F, F, F) any(vec) TRUE any(!vec) TRUE any(vec 2) FALSE any(!vec 2) TRUE sum(any(!vec 2)) 1

Ein logischer Vektor entseht durch die Anwendung von einem Vergleichungs-Operator gleicht x y? ist

Ein logischer Vektor entseht durch die Anwendung von einem Vergleichungs-Operator gleicht x y? ist x weniger als y? x == y x < y != gleicht nicht > größer als <= weniger oder gleicht x %in% y ist y in x enthalten? Erster Fall: y besteht aus einem Element x = c(10, 20, 30) y = 20 x == y FALSE TRUE FALSE x == 20 FALSE TRUE FALSE

Vergleichungs-Operator Zweiter Fall. x und y sind zueinander parallel (und bestehen daher aus der

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 TRUE

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

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

Zugriff auf Elemente durch [logische Vektoren] x = c(23, 5, 45, -10, 11) lvec

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

Einige Bekannte freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") Die Dauer (Min. ), die

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 Was ist (a) die Bedeutung (in Wörtern) und (b) das Ergebnis von: freunde[temp] (a) Bedeutung: die Freunde, die länger als 40 Minuten brauchen, um in die Arbeit zu kommen. (b) "Paul" "Georg"

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12)

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] "Georg"

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12)

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 temp = zeit == max(zeit) freunde[temp] "Paul" Oder freunde[zeit == max(zeit)] "Paul"

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12)

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"

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12)

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)

freunde = c("Paul", "Karin", "Elke", "Georg", "Peter") zeit = c(50, 11, 35, 41, 12)

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

Logische Vektoren und Matrizen Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat (Formant-Werte zum zeitlichen

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

Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.

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

Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.

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

Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat Die Segmente (aus der Segmentliste) für die

Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat Die Segmente (aus der Segmentliste) für die F 2 – F 1 unter 400 Hz liegt. (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax. fdat, 0, prop=T) Logischer Vektor um zu identifizieren, fuer welche Segmente (Reihen der Matrix on) F 2 – F 1 (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 194 I 911. 563 964. 625 K 67 MR 096 209 I 1326. 380 1384. 500 K 68 MR 001. . .

Segmentliste Label-Vektor Trackdatei vowlax. l vowlax. fdat (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.

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