Grundlagen der R Programmiersprache

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
Objekt – Relationales – Modell Tomasz Makowski IN
11. Matrizen. 11. Matrizen Eine mn-Matrix ist ein Raster aus mn Koeffizienten, die in m Zeilen und n Spalten angeordnet sind. = (aij)1  i  m, 1.
Zentralwert bei Listen: Beispiele und Formeln
Trimino zum Kopf- oder halbschriftlichen Rechnen
Seminar Stochastik im WS 02/03
= = = = 47 = 47 = 48 = =
Statistiken und Tabellen
Die akustische Analyse von Sprachlauten.
Formant-Analysen von Vokalen
Logische Vektoren in R Jonathan Harrington.
Formant-Analysen von Vokalen
Spektrale Analysen in EMU-R: eine Einführung
Die t-Verteilung Jonathan Harrington.
Formant-Analysen von Vokalen (2) Jonathan Harrington 1, 2 Struktur und Abbildung einer Trackdatei 3, 4. Anwendung von vorhandenen und eigenen Funktionen.
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Parametrisierung von Spektra
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
Logistische Regression und die Analyse von Proportionen Jonathan Harrington.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Klausur „Diskrete Mathematik II“
Prof. Dr. Bernhard Wasmayr
für rechtwinklige Dreiecke
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Heute: Scherenzange zeichnen
boolean Datentyp und Operator
AWA 2007 Natur und Umwelt Natürlich Leben
Das wars!.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
20:00.
Zusatzfolien zu B-Bäumen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Eine Einführung in die CD-ROM
Die folgenden Gleichungen wurden über die Grundmenge R gelöst. HAYAL ÖZ.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Repetition „Variable & Term“
Wir üben die Malsätzchen
Einführung in die Matrizenrechnung
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Seiten 8 und 9 guten Morgen guten Tag guten Abend Herr Frau
Der Test fängt mit dem nächsten Bild an!
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Analyse von Ablaufdiagrammen
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
3 4 = 3 : 4 = 0, = 0,75 denn: 3 : 4 = 0,75 Die Division geht auf. Es entsteht ein endlicher Dezimalbruch = 4,12 denn:
Das ist die Geschichte eines kleinen Jungen aus der Schweiz.
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Determinanten und Cramer‘sche Regel
Analyseprodukte numerischer Modelle
Programmieren in C Grundlagen C 2
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Deutschlandpokal Eishockey Spielplan / Ergebnisse Vorrunde - Freitag 16:00 – 16:20 A Sindelfingen 2 – Friedrichshafen0:2 16:20 – 16:40 A Rastatt1 - Mannheim.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Programmiervorkurs WS 2014 Referenzdatentypen
Es war einmal ein Haus
Folie Einzelauswertung der Gemeindedaten
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Grundlagen der R Programmiersprache Modul G WS 07/08.
 Präsentation transkript:

Grundlagen der R Programmiersprache Jonathan Harrington

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

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]

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

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 10 20 30 y -5 0 10 Reihenanzahl nrow(mat) [1] 2 Spaltenanzahl ncol(mat) [1] 3 Dimensionenanzahl dim(mat) [1] 2 3

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 10 -5 Gruppe B 20 0 Gruppe C 30 10

Dimensionen-Namen entfernen... dimnames(mat2) = NULL mat2 [,1] [,2] [1,] 10 -5 [2,] 20 0 [3,] 30 10

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

a [,1] [,2] [,3] [,4] 10 3 8 7 11 45 20 -1 b 20 6 16 14 22 90 40 -2   a + b 30 9 24 21 33 135 60 -3 Hier betonen, dass die Arithmetik parallel angewendet wird

Anwendung von Funktionen auf Matrizen [,1] [,2] [,3] x 10 20 30 y -5 0 10 mean(mat) [1] 10.83333 (Durchschnitt aller Elemente) Zentralwert der Spalten apply(mat, 2, median) [1] 2.5 10.0 20.0 Durchschnitt der Reihen apply(mat, 1, mean) x y 20.000000 1.666667

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

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]

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 897.5 562 1768 2379 3399 1127.5 648 1463 2523 3346 1462.5 684 1274 2505 3477 410 Vokal-Labels vowlax.l length(vowlax.l) [1] 410 table(vowlax.l) vowlax.l a E I O 126 82 170 32 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]

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

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

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

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

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

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

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

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] 5 -10 11

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"

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]

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

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"

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

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

dim(bridge) [1] 13 3 Mon Tues Wed 0 9 1 0 1 35 1 1 2 68 5 7 3 94 4 27 4 90 27 68 5 76 28 87 6 62 62 108 7 28 76 111 8 27 90 57 9 4 94 28 10 5 68 6 11 1 35 0 12 1 9 0 bridge Die Elemente von Reihe 1, die größer als 30 sind (logischer Vektor verwenden) temp = bridge[,1] > 30 bridge[temp,1] 1 2 3 4 5 6 35 68 94 90 76 62 Alle Reihen von bridge, für die die Werte in Reihe 1 größer als 30 sind bridge[temp,] Mon Tues Wed 1 35 1 1 2 68 5 7 3 94 4 27 4 90 27 68 5 76 28 87 6 62 62 108

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] 14.33333 F2- Durchschnitt aller "a" Vokale? temp = vowlax.l == "a" mean(vowlax.fdat.5[temp,2]) [1] 1437.214

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. http://www.phonetik.uni-muenchen.de/~jmh/lehre/emur.htm