1 / 20

Logische Vektoren in R

Logische Vektoren in R. Jonathan Harrington. Logische Vektoren. werden für Auswahl benötigt. Die Dauer aller "E" Vokale. Die Segmente, für die F1 über 700 Hz liegt. (Formant-Werte zum Segment -Onset ). Die Etikettierungen der Segmente mit einer Dauer zwischen 100 und 200 ms.

benson
Download Presentation

Logische Vektoren in R

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logische Vektoren in R Jonathan Harrington

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

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

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

  5. vec2 = c(F, F, F, F) any(vec2) FALSE any(!vec2) TRUE 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() any(vec) TRUE any(!vec) TRUE sum(any(!vec2)) 1

  6. Ein logischer Vektor entseht durch die Anwendung von einem Vergleichungs-Operator Erster Fall: y besteht aus einem Element x = c(10, 20, 30) y = 20 x == y FALSE TRUE FALSE x == 20 FALSE TRUE FALSE x == ygleicht 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?

  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 labs %in% "E"(kommt "E" in labs vor?) FALSE TRUE FALSE FALSE FALSE FALSE TRUE dasselbe dasselbe (kommen "E" oder "I" in labs vor?) labs == "E" labs == "E" | labs == "I" labs %in% c("I", "E") TRUE TRUE FALSE FALSE FALSE TRUE TRUE %in% labs = c("I", "E", "O", "O", "O","I", "E")

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

  10. 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" 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

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

  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"

  13. 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. 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. 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

  16. temp 1 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[ , ]

  17. temp 1:2 (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[ , ]

  18. (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. (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 194 I 911.563 964.625 K67MR096 209 I 1326.380 1384.500 K68MR001 ...

  20. vowlax.l == "E" on[,1] > 700 (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 & temp = F3 Mittelwert für diese Vokale 3027 mean(on[temp,3])

More Related