Grundlagen C R ash-kurs

Größe: px
Ab Seite anzeigen:

Download "Grundlagen C R ash-kurs"

Transkript

1 Grundlagen C R ash-kurs Torsten Hothorn Institut für Statistik Was ist S? Was ist R? S ist eine Sprache für Datenanalyse und Graphik, entwickelt von John Chambers und Kollegen in den Bell Laboratories um interaktives Rechnen mit Daten in einer vollwertigen interpretierten Programmiersprache, die den Benutzern Zugang zu allen Strukturen und R ist eine Implementation der Sprache S, anfänglich von Ross Ihaka und Robert Gentleman (Univ. Auckland) entwickelt und seit Mitte der 90iger Jahre von einem Entwickler-Kollektiv (R- Core) betreut. Informationen zu R unter Graphik für explorative Datenanalyse und Publikationszwecke bietet, zu ermöglichen.

2 Wo bekomme ich R? Wie installiere ich R? Fertige R Distributionen sind für Windows 95, 98, ME, NT4, 2000 und XP für Intel-Prozessoren, für MacOS X und viele Linux- Versionen auf CRAN dem Comprehensive R Archive Network erhältlich: Natürlich ist dort auch der vollständige Quellcode erhältlich, jeweils in der aktuellen Version (zur Zeit: 2.5.0). Windows: Führe die Datei R win32.exe von R-project.org/bin/windows/base aus und klicke Next bis zum glücklichen Ende ( Finish ). Unix: $ wget -c $ tar -xzvf R tgz $./configure $ make && make check $ make install Wie starte ich R? R als Tischrechner Windows: Auf das R-Symbol klicken. Unix: $ R Es wird eine Kommando-Zeilen-Schnittstelle gestartet. Unter Windows ist diese in das üblichen Fenster-Schema eingepaßt und einige wichtige Aktionen sind per Menü ausführbar. Ok. Aller Anfang ist schwer, also zunächst mal was Bekanntes... > [1] 2 > a <- 0.5 > b <- a * 2 > exp(b) [1]

3 R Grundlagen R Grundlagen Hilfe: help(topic)?topic help.start() Zuweisungen: x <- 5 x < > x Operatoren: +, -, *, /, ^ &, &&,, siehe help("+") Vergleiche: ==,!=, >, >=, <, <= siehe help("==") Schleifen: for, while, if Kommentare: alles nach # Namen: Groß/Kleinschreibung wichtig, beginnen mit Buchstaben, Achtung bei Underscore Elementare Datentypen logical: TRUE, FALSE, T, F integer: 1, 100, 326,... double: 1.0, , , NaN, Inf, -Inf complex: 1+0i, 1i, 3+5i character: "Hallo", "Wie geht s?" fehlende Werte: NA Alle elementaren Datentypen sind ausschließlich als Vektoren verfügbar (es gibt keine Skalare), jeder Vektor enthält 0 oder mehr Elemente desselben Typs, eventuell gemischt mit NA. R Grundlagen R Grundlagen Wir unterscheiden zwischen Modus und Speichermodus eines Vektors: > mode(1:10) [1] "numeric" > storage.mode(1:10) [1] "integer" > mode(pi) [1] "numeric" > storage.mode(pi) [1] "double" > mode(true) [1] "logical" > mode("hello") [1] "character" Komplexere Datentypen array: Vektor mit Dimensionsattribut, Anzahl der Dimensionen ist de facto nur durch den verfügbaren Hauptspeicher beschränkt. matrix: 2-dimensionaler Array, Spezialfall um übliche Matrixoperationen (Multiplikation,... ) zu ermöglichen. factor: spezieller Vektor für kategorielle Merkmale. list: kombiniert Elemente verschiedener Typen (inkl. Listen rekursive Strukturen). data frame: Mischung aus Matrix und Liste.

4 Konstruktion & Umwandlung Funktionen zum Erzeugen von Datentypen haben üblicherweise denselben Namen wie der betreffende Datentyp (ein generelles Prinzip in S), Methoden zur Konversion zwischen verschiedenen Typen haben Namen wie as.xxx(), Überprüfung des Typs erfolgt mit is.xxx(). R> integer(5) R> double(0) R> x <- matrix(1, nrow=5, ncol=2) R> is.matrix(x) R> as.vector(x) R> x <- list(a="hallo", b=1:10, pi= ) Konstruktion & Umwandlung R> c(1,2,7) R> c("hallo", "Welt") Konstruktion einfacher Vektoren Konstruktion & Umwandlung S wandelt den Typ eines Objektes automatisch um, wenn dies notwendig und möglich ist: > TRUE + 2 [1] 3 > c("hello", 100) [1] "Hello" "100" Beispiele für häufige Konversionen sind logisch numerisch logisch, numerisch komplex logisch, numerisch, komplex Text numerisch, komplex logisch NA, NaN und NULL Alle drei können als Darstellung von Nichts angesehen werden, allerdings ist die Ursache für das Fehlen der Information verschieden: NA: fehlende Werte in der Stichprobe, unzulässige Konversionen,... NaN: ähnlich zu NA, aber die Ursache des Fehlens ist bekannt: eine mathematische Operation liefert kein Ergebnis, z.b. weil eine Funktion außerhalb ihres Definitionsbereiches verwendet wurde (log( 1),... ). Üblicherweise begleitet von Warnung. NULL: Zeiger auf Nichts im informatischen Sinn > c(3, NA) [1] 3 NA > c(3, NaN) [1] 3 NaN > c(3, NULL) [1] 3

5 Unendlich Die beiden speziellen Symbole Inf und -Inf können wie Zahlen in vielen mathematischen Rechenoperationen verwendet werden: > max(3, NA) [1] NA > min(3, NA) [1] NA > max(3, Inf) [1] Inf > min(3, Inf) [1] 3 Achtung: manche numerische Verfahren können nicht mit Unendlich rechnen und liefern Fehlermeldungen. Zugriff auf einzelne Elemente Vektoren: durch Nummer, Name oder logischen Vektor R> x <- c(5,3,7) R> names(x) <- c("apple","banana","orange") R> x["apple"] R> x[1:2] R> x[c(t,t,f)] Arrays: wie Vektoren, Dimensionen durch Komma getrennt R> x <- matrix(1:10, ncol=2); colnames(x) <- c("eins", "Zwei") R> x[1:2,] # liefert eine Matrix R> x[,"zwei"] # liefert einen Vektor R> x[,"zwei",drop=f] # liefert eine Matrix R> x[-3,] # alles außer Zeile 3 Zugriff auf einzelne Elemente Listen: Dollarzeichen oder Nummer/Name R> x <- list(a="hallo", b=1:10, pi= ) R> x$a R> x[["a"]] R> x[[1]] ## erstes Element der Liste R> x[1] ## Liste mit einem Element R> x[2:3] ## Liste mit zwei Elementen R> x[[2:3]] ## FEHLER! Data frames Duale Sichtweise: Matrix in der jede Spalte einen anderen Datentyp haben kann Liste in der jedes Element dieselbe Länge haben muß Zugriff auf Elemente wie bei Matrizen oder Listen: R> data(iris) R> iris[1:10,] ## data frame mit 10 Zeilen R> iris[,1] ## numerischer Vektor R> iris$sepal.length ## dasselbe R> iris[,1,drop=false] ## data frame mit einer Spalte

6 Attribute Attribute Sind wie Pickerl auf einem Marmeladeglas und ermöglichen die detailliertere Beschreibung des Inhaltes. So ist z.b. ein Array nur ein Vektor mit einem Dimensionsattribut. Weitere häufige Attribute beinhalten Namen für die Zeilen oder Spalten einer Matrix, Elemente einer Liste,... > x <- matrix(1:10, ncol = 5) > x [,1] [,2] [,3] [,4] [,5] [1,] [2,] > attributes(x) $dim [1] 2 5 > rownames(x) <- c("eins", "Zwei") > x [,1] [,2] [,3] [,4] [,5] Eins Zwei > attributes(x) $dim [1] 2 5 $dimnames $dimnames[[1]] [1] "Eins" "Zwei" $dimnames[[2]] NULL Attribute Klassen Die as.xxx() Funktionen löschen alle Attribute, inklusive der Dimensionalität: > x <- matrix(1:10, nrow = 2) > x [,1] [,2] [,3] [,4] [,5] [1,] [2,] > as.character(x) [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" > storage.mode(x) <- "character" > x [,1] [,2] [,3] [,4] [,5] [1,] "1" "3" "5" "7" "9" [2,] "2" "4" "6" "8" "10" Unglücklicherweise hat S gleich zwei Klassensysteme: S3 und S4. Wir werden uns nur mit dem viel einfacheren S3 System beschäftigen. Ein spezielles Attribut jedes Objektes beschreibt seine Klasse, dies ermöglicht einfaches objekt-orientiertes Programmieren und das Überladen von Funktionen. Setzen und Überprüfen der Klasse eines Objektes: R> class(y) R> class(y) <- "newclass" Generische Funktionen verhalten sich unterschiedlich für Objekte verschiedener Klassen.

7 Klassen > x <- rep(0:1, c(10, 20)) > x [1] > class(x) [1] "integer" > summary(x) Min. 1st Qu. Median Mean 3rd Qu. Max > y <- as.factor(x) > class(y) [1] "factor" > summary(y) Funktionen Funktionen Obwohl S-Plus und R bereits in der Standardinstallation extrem mächtige Werkzeuge zur Datenanalyse darstellen, wollen die meisten Benutzer nach einiger Zeit dieses Werkzeug ihren eigenen Bedürfnissen anpassen. Einer der größten Vorteile von S ist, daß jeder Benutzer das System leicht um eigene Funktionen erweitern oder bestehende Funktionen modifizieren kann. Der größte Teil von R selber ist in der Sprache S geschrieben. S ist eine vollwertige Programmiersprache in deren Design die Notwendigkeiten der statistischen Datenanalyse mit einbezogen wurden, es ist nicht nur eine Sprache zur Datenanalyse. Formale Definition function ( ARGLIST ) KÖRPER Das Schlüsselwort function markiert den Beginn einer Funktionsdefinition. Die Argumente der Funktion werden durch eine mit Kommas getrennte Liste von Ausdrücken der Form SYMBOL = AUSDRUCK oder durch das spezielle formale Argument... angegeben. Jeder gültige R Ausdruck kann als KÖRPER der Funktion verwendet werden, zumeist ist es ein durch geschwungene Klammern gruppierter Block von Anweisungen. In den meisten Fällen werden Funktionen Symbolen zugewiesen ( bekommen einen Namen ), aber auch anonyme Funktionen sind an gewissen Stellen sehr praktisch (apply(),... ).

8 Funktionen aufrufen Funktionen aufrufen Beispiel: moment <- function(x, n=2) { sum(x^n)/length(x) Funktionen retournieren nur eine einziges Objekt: den Wert des letzten Ausdruckes oder das Argument von return(). In der Praxis ist dies nicht allzu restriktiv, da das zurückgelieferte Objekt eine beliebig komplexe Liste sein kann. Benannte Argumente: Wenn eine Funktion aufgerufen wird, müssen die Argumente nicht in derselben Reihenfolge wie in der Funktionsdefinition angegeben werden, sondern können auch direkt mit Namen angesprochen werden, z.b. moment(n=3, x=myx). Argumente mit Defaultwerten müssen beim Aufruf nicht spezifiziert werden, z.b. moment(myx). Defaultwerte können Funktionen anderer Argumente sein. Das... Argument Funktionen können beliebig viele unspezifizierte Argumente besitzen, falls die Argumentliste das spezielle Argument... enthält, z.b. max(..., na.rm = FALSE). Eine zweite Verwendungsmöglichkeit ist das Weiterleiten von Argumenten an eine andere Funktion: myplotfun <- function(x, y, myarg,...) { ## do some computations using x, y and myarg ## then call the standard plot function plot(x, y,...) Damit versteht myplot() zusätzlich zu seinen eigenen Argumenten implizit auch alle Argumente von plot() ohne weiteren Programmieraufwand. x <- list(...) im Körper einer Funktion konvertiert alle unspezifizierten Argumente in eine benannte Liste. Argumente zusammenfügen Wenn eine Funktion aufgerufen wird, werden die tatsächlichen Argumente des Funktionsaufrufen mit den formalen Argumenten der Funktionsdefinition in der folgenden Reihenfolge zusammengefügt: 1. alle benannten Argumente deren Namen dem eines formalen Argumentes exakt entspricht 2. wenn kein... Argument definiert wurde genügt eine eindeutige Übereinstimmung am Beginn des Namens 3. Position in der Argumentliste 4. Verbleibende tatsächliche Argumente werden Teil von... (falls definiert). Anmerkung: Nicht alle formalen Argumente müssen auch durch tatsächliche Argumente abgedeckt werden.

9 Lazy Evaluation Flußkontrolle Beim Aufruf einer Funktion werden die Argumente nur geparsed, aber nicht evaluiert. Die Auswertung des Argumentes erfolgt erst, wenn das Argument zum ersten Mal verwendet wird: > myfun <- function(x, y) { + if (x < 0) + return(nan) + else return(y * log(x)) + > myfun(-1) [1] NaN > myfun(2, 3) [1] > myfun(2) Error in myfun(2) : Argument "y" is missing, with no default Als vollwertige Programmiersprache besitzt S eine Reihe von Strukturen zur Kontrolle des Programmflusses. Iterationen werden durch die Befehle for, while und repeat zur Verfügung gestellt. Für bedingte Auswertungen können if, else und switch() verwendet werden. for und if sind von diesem die bei weitem am häufigsten verwendeten. Der if Befehl if: Beispiele if else Konstrukte haben die Form if( Test ) { Anweisungsblock 1 else { Anweisungsblock 2 Wenn der Test den Wert TRUE liefert, wird Anweisungsblock 1 ausgeführt, sonst Anweisungsblock 2. Der else-teil ist optional. Ein typisches Beispiel für die Verwendung von if: if (any(x < 0)){ stop("negative Werte in x") Auswahl zwischen mehreren Möglichkeiten:: if (all(x >= 0)) sqrt(x) else sqrt(x + 0i)

10 if: Beispiele Der for Befehl Verschachtelte if Befehle: if (x <= 0){ return(0) else if( x>0 && x<=1){ return(x) else { return(1) (eher sinnloses Beispiel da nicht vektorisiert) for Konstrukte haben die Form for(var in vector) { Schleife In jedem Iterationsschritt wird die Variable var der Reihe nach auf jeweils das nächste Element des Vektors vector gesetzt und dann die Schleife durchlaufen. Dies sieht ähnlich wie die entsprechenden Konstrukte von Sprachen wie C oder C++ aus, ist aber syntaktisch näher am foreach Befehl der Sprache Perl. for: Beispiele Der while Befehl while Konstrukte haben die Form Summation der Elemente eines Vektors im Stil von C: summe <- 0 for(i in 1:length(x)) { summe <- summe + x[i] Summation der Elemente eines Vektors im Stil von Perl: summe <- 0 for(elt in x) { summe <- summe + elt Die zweite Variante ist effizienter. while( Test ) { Schleife Die Schleife wird immer wieder durchlaufen, bis der Test zum ersten Mal FALSE liefert. Beispiel: Summation bis zum ersten fehlenden Wert summe <- 0 i <- 1 while((i <= length(x)) &&!is.na(x[i])){ summe <- summe + x[i] i <- i+1

11 next und break next Springt zum Beginn der nächsten Iteration einer for oder while Schleife. break Beendet eine for oder while Iteration vorzeitig. Methoden Beispiel: Summation bis zum ersten fehlenden Wert summe <- 0 i <- 1 while(i <= length(x)){ if(is.na(x[i])) break summe <- summe + x[i] i <- i+1 Objekt-orientierte Programmierung Gründe für OOP: Erhöhung der Produktivität leichtere Wartung des eigenen Codes Wiederverwendung von Code-Bausteinen Objekt-orientierte Programmierung Beispiel: mit R> lm1 <- lm(y~x) wurde ein lineares Modell angepaßt. Welches der beiden Kommandos das Design spiegelt das modellierte Objekt (meistens) näher wider R> lm1$coef R> coef(lm1) Abstraktion zwischen Implementierung und Verwendung von Funktionalität ist besser geeignet, um die Koeffizienten zu extrahieren?

12 Klassen & Instanzen Klassen & Instanzen eine Klasse ist die abstrakte Definition eines Objektes Die Grundbausteine jedes Klassensystems sind: eine Instanz ist eine Realisierung einer Klasse Definition von Klassen, Erzeugung von Instanzen der Klasse Beispiel: Klasse ganzzahliger Vektor, Instanz (1,2,3) normalerweise könne Klassen von Elternklassen erben, d.h., sie erweitern diese: Pudel erbt von Hund, Hund erbt von Säugetier, Säugetier erbt von Wirbeltier,... Spezifikation des Vererbungsbaumes Feststellung der Klasse und aller Elternklassen eines Objektes Zugriff auf und Modifikationen von Slots der Klasse Methoden S3 Klassen & Methoden Generische Methoden sind Funktionen, die in Abhängigkeit von der Klasse ihrer Argumente unterschiedliche Berechnungen durchführen und eventuell unterschiedliche Ausgaben zurückliefern (Polymorphismus). In den meisten klassischen OO-Programmiersprachen sind Methoden Teile von Instanzen. S ist als interaktive Sprache designed, Methoden können zur Laufzeit vom Benutzer verändert und an seine Bedürfnisse angepaßt werden. S3 stellt einen einfachen (aber populären und mächtigen) Mechanismus zum Überladen von Funktionen zur Verfügung: Definition einer generischen Funktion foo <- function(x,...) UseMethod("foo") Wenn myx ein Objekt der Klasse "bar" ist, dann sucht S beim Aufruf von foo(myx) nach Funktionen mit Namen foo.bar() foo.default() in der dieser Reihenfolge und übergibt alle Argumente an sie. Dies nennt sich auch Method Dispatch nach dem ersten Argument.

13 S3 Klassen & Methoden > print function (x,...) UseMethod("print") <environment: namespace:base> > x <- 1:5 > print(x) [1] > class(x) <- "foo" > print(x) [1] attr(,"class") [1] "foo" > print.foo <- function(x,...) { + cat("foo Objekt der Länge", length(x), ":\n") + print(unclass(x)) + > print(x) foo Objekt der Länge 5 : [1] S3 Klassen & Methoden Um das Benutzen von Methoden so einfach wie möglich zu machen (und aus einer Reihe von anderen Gründen) sollte man sich an folgende Regeln halten: Jede Methode sollte alle Argumente der zugehörigen generischen Funktion haben (inklusive... falls vorhanden). Jede Methode sollte alle Argumente in exakt derselben Reihenfolge wie die generische Funktion haben und dieselben Defaultwerte benutzen. Darüber hinaus kann jede Methode eine beliebige Anzahl an zusätzlichen Argumenten akzeptieren. Diese Regeln sind nicht Teil der Sprache S, werden von den Qualitätssicherungsmechanismen von R aber überprüft. S3: Die Klassen-Bausteine Definition: nicht notwendig oder möglich Erzeugen von Instanzen: einfach Klassenattribut auf beliebiges Objekt setzen Graphik Vererbung: Vektor von Klassennamen (Kinder vor Eltern) Klasse testen: inherits(object, klassenname ) Zugriff auf Slots: Je nach Basistyp, für Listen über $ oder [[]].

14 Grafik Devices Grafik Devices Für die Grafikausgabe stehen eine Reihe von Geräten (Devices) zur Verfügung, die die folgenden Eigenschaften besitzen: Man stelle sich ein Device zunächst vor als ein Stück Papier, auf das man mit vielen Stiften und Farben malen kann, von dem aber nicht gelöscht werden kann. Mehrere Devices können gleichzeitig geöffnet sein, man kann aber nur genau in das aktive hineinmalen. Man bemerkt keinen Unterschied beim Malen, egal welches Device man benutzt.?devices zeigt Details an und gibt Hinweise auf weitere Hilfeseiten. postscript(): PostScript Grafiken, z.b. zum Einbinden in LAT E X Dokumente. pdf(): Portable Document Format. Z.B. zur direkten Präsentation, Verteilen an andere, oder Einbinden in PDFLAT E X Dokumente. Kann gut für die Durchsicht sehr vieler Grafiken verwendet werden. pictex(): LAT E X/PicT E X Ausgabe. bitmap(): Eine Reihe verschiedener Grafikformate, die über Ghost- Script generiert werden. Grafik Devices Grafik Devices Außerdem: X11(): Bildschirm Ausgabe. png(): PNG Grafiken, ein Format ähnlich GIF. jpeg(): JPEG kennt jeder: bei variabler Qualitativ enorm kleine Dateigröße möglich gut für das Internet. und unter Windows windows(): Bildschirm Ausgabe. win.metafile(): Windows Meta File, damit es auch in MS Word & Co. klappt. bmp(): Bitmap kann jeder lesen, aber enorm groß und nicht skalierbar. Die übliche Reihenfolge zum Produzieren einer Grafik ist: Device starten, z.b. pdf( testgrafik.pdf ) Grafik erzeugen, z.b. plot(1:10) Device schließen: dev.off() Wenn man beim interaktiven Arbeiten und gleichzeitig verfügbarer GUI den ersten Schritt auslässt, wird als Device automatisch die Bildschirmausgabe gestartet, sonst das postscript() Device.

15 Grafik High-level Funktionen Zunächst also zu den von base gelieferten Standard-Grafiken. High-level Funktionen erzeugen bzw. initialisieren eine Grafik. Einige wichtige und nützliche High-level Grafikfunktionen sind: plot() barplot() boxplot() coplot () contour() curve() dotchart() hist() image() mosaicplot() pairs() persp() qqplot() kontextabhängig Stabdiagramm Boxplot Conditioning Plots Höhenlinienplot Funktionen plotten Dot Plots (Cleveland) Histogramm Bilder (3. Dim. als Farbe) Mosaikplots (kateg. Daten) Streudiagramm Matrix perspektivische Flächen QQ Plot Grafik High-level Funktionen Sehr viele Funktionen können auf verschiedene Objekte angewendet werden und reagieren intelligent, so dass für jedes Objekt meist eine sinnvolle Grafik erzeugt wird. Z.B. erzeugt plot() einen Scatterplot bei Eingabe von zwei Vektoren, Residualplots bei Eingabe eines lm-objektes (lineares Modell / Regression), eine per Linie verbundene Zeitreihe bei Zeitreihenobjekten, usw. Hier wird die Objektorientiertheit der S Sprache ausgenutzt. Es ist also schnell ein Streudiagramm, Histogramm, Boxplot etc. erstellt, so dass man Daten sehr schnell für Analysen anschauen kann. Grafik Scatterplotmatrix Grafik Scatterplotmatrix > data("trees") > str(trees) data.frame : 31 obs. of 3 variables: $ Girth : num $ Height: num $ Volume: num > plot(trees) Girth Height Volume

Statistische Software (R-Vertiefung) Kontrollstrukturen: Bedingte Anweisungen. Logische Operatoren & Verknüpfungen. Syntax. Paul Fink, M.Sc.

Statistische Software (R-Vertiefung) Kontrollstrukturen: Bedingte Anweisungen. Logische Operatoren & Verknüpfungen. Syntax. Paul Fink, M.Sc. Kontrollstrukturen: Bedingte Anweisungen Statistische Software (R-Vertiefung) if ( Bedingung ) { Ausdruck 1 } else { Ausdruck 2} Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München

Mehr

R Einstieg. Manuel Eugster, Armin Monecke, Faban Scheipl. Institut für Statistik Ludwig-Maximilians-Universität München.

R Einstieg. Manuel Eugster, Armin Monecke, Faban Scheipl. Institut für Statistik Ludwig-Maximilians-Universität München. R Einstieg Manuel Eugster, Armin Monecke, Faban Scheipl Institut für Statistik Ludwig-Maximilians-Universität München Einführung in R Was ist S? S ist eine Sprache für Datenanalyse und Graphik, entwickelt

Mehr

Klaus Schliep. 16. Februar 2004

Klaus Schliep. 16. Februar 2004 Einführung in R Klaus Schliep 16. Februar 2004 Allgemeines R besteht ausschließlich aus Objekten. Die meisten Objekte sind entweder Daten oder Funktionen. Alle Funktionen werden mit runden Klammern geschrieben,

Mehr

Einführung in R. Felix Kuhr Institut für Informationssysteme Universtität zu Lübeck. December 13, 2016

Einführung in R. Felix Kuhr Institut für Informationssysteme Universtität zu Lübeck. December 13, 2016 Einführung in R Felix Kuhr Institut für Informationssysteme Universtität zu Lübeck December 13, 2016 Einführung R ist ein Software-Paket für statistisches Rechnen. R ist eine Open Source Implementierung

Mehr

Einführung in R. Einführung. Einführung / 3. Einführung / 2

Einführung in R. Einführung. Einführung / 3. Einführung / 2 Einführung Einführung in R R ist ein Software-Paket für Statistisches Rechnen und Graphik. Es ist die Open Source Implementierung der Sprache S, die von John Chambers und Kollegen in den Bell Laboratories

Mehr

Einheit 1. Einführung in R. IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11

Einheit 1. Einführung in R. IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11 Einheit 1 Einführung in R IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11 Einführung R ist ein Software-Paket für Statistisches Rechnen und Graphik. Es ist die Open Source Implementierung

Mehr

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung. R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung. Carsten Szardenings c.sz@wwu.de 7. Mai 2015 A 2 B 3 C 4 D 5 F 6 R 16 S 17 V 18 W 19 Z 20 H 7 I 8 K 9

Mehr

Programmieren mit statistischer Software

Programmieren mit statistischer Software Programmieren mit statistischer Software Eva Endres, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Funktionen Definition von Funktionen I Eine Funktion hat einen Namen benötigt Argumente

Mehr

Syntax Variablen. mtrx <- matrix (c(1,2,3,4,5,6),ncol=2,nrow=3) Anzeigen des Types: class(var) Umwandeln mit: as.vector(mtrx)

Syntax Variablen. mtrx <- matrix (c(1,2,3,4,5,6),ncol=2,nrow=3) Anzeigen des Types: class(var) Umwandeln mit: as.vector(mtrx) TUTORIUM BIOINFORMATIK SS17 Was ist R? Programmiersprache für statistische Analysen Funktionelle Programmiersprache Einfach und effektiv Bietet Funktionen zum Einlesen und Analysieren von Daten Erzeugen

Mehr

Statistische Software (R)

Statistische Software (R) Statistische Software (R) Paul Fink, M.Sc., Eva Endres, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Grafiken Leitmotiv bei Erstellung von Grafiken Sinnvolle, leicht zu verstehende

Mehr

Statistische Datenanalyse mit R. Dr. Andrea Denecke Leibniz Universität IT-Services

Statistische Datenanalyse mit R. Dr. Andrea Denecke Leibniz Universität IT-Services Statistische Datenanalyse mit R Dr. Andrea Denecke Leibniz Universität IT-Services Funktionen Eigene Funktionen in R haben den Aufbau namefunction

Mehr

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz

Mehr

Univariate explorative Datenanalyse in R

Univariate explorative Datenanalyse in R Univariate explorative Datenanalyse in R Achim Zeileis, Regina Tüchler 2006-10-03 1 Ein metrisches Merkmal Wir laden den Datensatz: R> load("statlab.rda") und machen die Variablen direkt verfügbar: R>

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Statistische Auswertungen mit R Universität Kassel, FB 07 Wirtschaftswissenschaften Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Beispiele 2. Sitzung Wertzuweisungen zu Objekten, Vektoren, Matrizen,

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

ECDL MODUL COMPUTING. Syllabus Version 1.0

ECDL MODUL COMPUTING. Syllabus Version 1.0 ECDL MODUL COMPUTING Syllabus Version 1.0 DLGI Dienstleistungsgesellschaft für Informatik Am Bonner Bogen 6 53227 Bonn Tel.: 0228-688-448-0 Fax: 0228-688-448-99 E-Mail: info@dlgi.de, URL: www.dlgi.de In

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil 4.2 Selbstdefinierte Matlab-Funktionen 1. Teil 37 Ein m-file mit Namen Funktionsname.m und einer ersten Zeile der folgen Form: function Funktionsname(input1,input2,...,inputn) oder function output1=funktionsname(input1,input2,...,inputn)

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Einführung in R. Matthias Templ, Leonhard Seyfang. Oktober 2005

Einführung in R. Matthias Templ, Leonhard Seyfang. Oktober 2005 Einführung in R Matthias Templ, Leonhard Seyfang Oktober 2005 Ausblick 1. Was ist R? Warum ausgerechnet R? (eine kurze Werbung) 2. Installation von R 3. Informationsmaterial zu R 4. GUI s für R; R-Commander

Mehr

Programmieren mit statistischer Software

Programmieren mit statistischer Software Programmieren mit statistischer Software Eva Endres, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Vektorwertiges Programmieren Programmieren ohne explizite Schleife I Vektorisierung

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

if ( Logischer Operator ) { } else { Anweisungen false

if ( Logischer Operator ) { } else { Anweisungen false if ( Logischer Operator ) { Anweisungen true else { Anweisungen false Bedingte Anweisungen Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von

Mehr

Eine Einführung in R: Programmstrukturen

Eine Einführung in R: Programmstrukturen Eine Einführung in R: Programmstrukturen Bernd Klaus, Verena Zuber Institut für Medizinische Informatik, Statistik und Epidemiologie (IMISE), Universität Leipzig 4. November 2009 Bernd Klaus, Verena Zuber

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Statistische Software (R)

Statistische Software (R) Statistische Software (R) Paul Fink, M.Sc., Eva Endres, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Einführung Statistik und Computer Nach Efron (2003): Statistik im 20. Jahrhundert

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Ulrich Stein

Ulrich Stein Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 64 1 Einführung Java Geschichte 2 Programmieren in Java Einführung

Mehr

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php

Mehr

Mobile Anwendungsentwicklung - Überblick über ios & Swift I -

Mobile Anwendungsentwicklung - Überblick über ios & Swift I - Mobile Anwendungsentwicklung - Überblick über & I - Prof. Dr. Michael Cebulla 4. November 2016 Hochschule Schmalkalden Wintersemester 2016/17 1 / 38 M. Cebulla Mobile Anwendungsentwicklung Gliederung 1

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

Bivariate explorative Datenanalyse in R

Bivariate explorative Datenanalyse in R Bivariate explorative Datenanalyse in R Achim Zeileis, Regina Tüchler 2006-10-09 In der LV Statistik 1 haben wir auch den Zusammenhang von 2 Variablen untersucht. Hier werden die dazugehörenden R-Befehle

Mehr

Bedingte Anweisungen

Bedingte Anweisungen Bedingte Anweisungen Bedingte Anweisungen werden nicht immer ausgeführt, sondern nur, wenn eine Bedingung erfüllt (wahr) ist. C/C++/Java bieten hier 2 Konstruktionen an: if-anweisung sowie switch-case

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Univariate explorative Datenanalyse in R

Univariate explorative Datenanalyse in R Univariate explorative Datenanalyse in R Achim Zeileis 2009-02-20 1 Grundlegende Befehle Zunächst laden wir den Datensatz (siehe auch Daten.pdf ) BBBClub R> load("bbbclub.rda") das den "data.frame" BBBClub

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Empirische Softwaretechnik

Empirische Softwaretechnik Empirische Softwaretechnik Prof. Dr. Walter F. Tichy Dr. Matthias Müller Sommersemester 2006 1 Einführung in das Statistikpaket 2 R?! nicht vergleichbar mit den üblichen Statistikprogrammen wie SAS oder

Mehr

R-Fehlermeldungsleitfaden

R-Fehlermeldungsleitfaden R-Fehlermeldungsleitfaden Carsten Szardenings c.sz@wwu.de Wichtig: In neueren RStudio-Versionen wird auf einige Syntaxfehler (siehe Abschnitt 2) im Skript schon vor der Ausführung hingewiesen. Tippt so

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel Einführung in MATLAB + MATLAB Simulink Dipl.-Inf. Markus Appel mappel@informatik.hu-berlin.de 28.10.2016 Was ist MATLAB? ein universelles Algebra-Programm zur Lösung mathematischer Probleme grafische Darstellung

Mehr

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012 MÜNSTER Advanced Matlab Mario Ohlberger Martin Drohmann Stefan Girke 10/05/2012 Cell Array MÜNSTER 2 /12 Datentyp der beliebige Werte (nicht nur Zahlen) in Zellen speichert die wie einer Matrix oder einem

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

Download Aufruf Hilfe Objekte in R Datenimport Rechnen Grafik Verteilungen. R Grundlagen

Download Aufruf Hilfe Objekte in R Datenimport Rechnen Grafik Verteilungen. R Grundlagen R Grundlagen A. Gebhardt 6. Juni 2013/ R Institut für Statistik Universität Klagenfurt Universitätsstr. 65-67, A 9020 Klagenfurt albrecht.gebhardt@uni-klu.ac.at 1 / 27 Inhalt 1 Bezugsquelle 2 Aufruf 3

Mehr

Running R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden.

Running R. Windows Aus Menü. Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden. Einführung 1 / 1 Einführung 2/1 Running R Windows Aus Menü Linux Lese R Code ein führt den Code auch gleich aus, eventuell muss vorher das Verzeichnis gewechselt werden. Auf der Konsole/Eingabeaufforderung:

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

R- Grundlagen. TU Ilmenau. Stefan Heyder. 07. März 2019

R- Grundlagen. TU Ilmenau. Stefan Heyder. 07. März 2019 R- Grundlagen Stefan Heyder 07. März 2019 TU Ilmenau Einleitung Arithmetik Funktionen Logik Variablen Datentypen Vektoren Fehlende Daten (NA) Einleitung Arithmetik Funktionen Logik Variablen Datentypen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen. Grundlegende Programmstrukturen Seite 1 von 14 Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen. Sequenzen Eine Sequenz ist eine Folge von en (sblock) ohne Verzweigungen. Der

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Grundlegende Datentypen

Grundlegende Datentypen Grundlegende Datentypen Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 22.10.2018 10:53 Grundlegende Datentypen 1/21 Typen in Haskell ist alles streng typisiert Haskell verfügt über

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

Mehr

WiMa-Praktikum 1. Woche 8

WiMa-Praktikum 1. Woche 8 WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und

Mehr

Programmieren in C++ Templates

Programmieren in C++ Templates Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates

Mehr

Programmiervorkurs für die Numerik Teil 2/4

Programmiervorkurs für die Numerik Teil 2/4 line 1 1 0.8 0.6 0.4 0.2 0-0.2-0.4 Programmiervorkurs für die Numerik Teil 2/4 Christian Power Mathematisches Institut Universität Tübingen -8-6 -4-2 0 05.10.2016 2 4 6 8-8 -6-4 -2 0 2 4 6 8 Wiederholung

Mehr

Lineare Algebra mit dem Statistikprogramm R

Lineare Algebra mit dem Statistikprogramm R SEITE 1 Lineare Algebra mit dem Statistikprogramm R 1. Verwendung von Variablen Variablen werden in R definiert, indem man einem Variablennamen einen Wert zuweist. Bei Variablennamen wird zwischen Groß

Mehr

Schleifen Datenfelder (Arrays) Verzweigungen

Schleifen Datenfelder (Arrays) Verzweigungen Schleifen Datenfelder (Arrays) Verzweigungen Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein Überblick Schleifen o for, while, foreach Eindimensionale Arrays

Mehr

Statistik und Computer. Statistische Software (R) Was ist Statistiksoftware? Formeln und Code. Applications. Theory. Methodology

Statistik und Computer. Statistische Software (R) Was ist Statistiksoftware? Formeln und Code. Applications. Theory. Methodology Statistik und Computer Efron (2001): Statistik im 20. Jahrhundert Applications Statistische Software (R) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Einführung Theory

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 9 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 8. Vorlesung Variablendeklarationen: Gültigkeitsbereiche Variablentypen: Typenbestimmung Typenumwandlung Eingabe/Ausgabe von Daten: Textdateien, Binärdateien

Mehr

Einführung in. Pierre Bayerl

Einführung in. Pierre Bayerl Einführung in Pierre Bayerl 19. November 21 Matlab Numerische Manipulation von Matrizen und Vektoren und deren Visualisierung. Verwendung: Interaktive Eingabe von Befehlen Skriptprogramme ( Batch-Dateien

Mehr

2. Einführung in das Ingenieurtool MATLAB

2. Einführung in das Ingenieurtool MATLAB 2. Einführung in das Ingenieurtool MATLAB MATLAB ist eine numerische Berechnungsumgebung wurde vorrangig zum Rechnen mit Vektoren und Matrizen entworfen ist interaktiv benutzbar, vergleichbar mit einem

Mehr

3.4 Bivariate Datenanalyse in R

3.4 Bivariate Datenanalyse in R 90 KAPITEL 3. BIVARIATE ANALYSE 3.4 Bivariate Datenanalyse in R Beginnen wir mit dem Zusammenhang zwischen einem qualitativem und einem quantitativem Merkmal. Wir wollen das Alter der weiblichem Teilnehmer

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang.   WS 07/08 Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

S: nur für Statistiker?

S: nur für Statistiker? S: nur für Statistiker? Gliederung - Übersicht Was ist S? Historie S: die Sprache Beispiele R GUI Anwendungen Was ist S? An Interactive Environment for Data Analysis and Graphics Programmiersprache für

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang Reihungen Martin Wirsing in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang http://www.pst.informatik.uni-muenchen.de/lehre/ws0506/infoeinf/ WS 05/06 2 Ziele Die Datenstruktur der Reihungen

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr