Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Logische Vektoren in R Jonathan Harrington. Trackdatei Label-Vektor vowlax.fdat vowlax (Formant-Werte zum Segment-Onset) on = dcut(vowlax.fdat, 0, prop=T)

Ähnliche Präsentationen


Präsentation zum Thema: "Logische Vektoren in R Jonathan Harrington. Trackdatei Label-Vektor vowlax.fdat vowlax (Formant-Werte zum Segment-Onset) on = dcut(vowlax.fdat, 0, prop=T)"—  Präsentation transkript:

1 Logische Vektoren in R Jonathan Harrington

2 Trackdatei Label-Vektor vowlax.fdat vowlax (Formant-Werte zum Segment-Onset) on = dcut(vowlax.fdat, 0, prop=T) Segmentliste vowlax.l Logische Vektoren 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.

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

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

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

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

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

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

10 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) temp = zeit > 40 TRUE FALSE FALSE TRUE FALSE te mp 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) "Paul" "Georg" Welche Dauern sind größer als 40?

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

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

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

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

16 Logische Vektoren und Matrizen 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[, ] temp1 TrackdateiLabel-Vektor vowlax.fdatvowlax Segmentliste vowlax.l (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.fdat, 0, prop=T)

18 TrackdateiLabel-Vektor vowlax.fdatvowlax Segmentliste vowlax.l (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.fdat, 0, prop=T) Die Vokal-Etikettierungen, für die F1 (zum Onset) höher ist als 750 Hz. temp = Logischer Vektor um F1-Werte zu identifizieren, die höher als 750 Hz sind. on[,1] > 750 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 TrackdateiLabel-Vektor vowlax.fdatvowlax Segmentliste vowlax.l (Formant-Werte zum zeitlichen Mittelpunkt) on = dcut(vowlax.fdat, 0, prop=T) Die Segmente (aus der Segmentliste) für die F2 – F1 unter 400 Hz liegt. temp = vowlax[temp,] Logischer Vektor um zu identifizieren, fuer welche Segmente (Reihen der Matrix on ) F2 – F1 (zum Formant-Onset) unter 400 Hz liegt. on[,2] - on[,1] < 400 Die entsprechenden Segmente aus der Segmentliste segment list from database: kielread query was: Kanonic=a | E | I | O labels start end utts 194 I K67MR I K68MR001...

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


Herunterladen ppt "Logische Vektoren in R Jonathan Harrington. Trackdatei Label-Vektor vowlax.fdat vowlax (Formant-Werte zum Segment-Onset) on = dcut(vowlax.fdat, 0, prop=T)"

Ähnliche Präsentationen


Google-Anzeigen