Einführung in R. 17. April Emacs mit Erweiterung ESS (http://ess.r-project.org/),

Ähnliche Dokumente
Fakultät Statistik. Einführung in. Hendrik Blom & Nadja Bauer & Daniel Horn (basierend auf Folien von Uwe Ligges)

Klaus Schliep. 16. Februar 2004

Statistische Software (R)

Statistische Software (R)

Erwin Grüner

Übersicht Statistik-Funktionen. Statistische Software (R) Nützliche Funktionen. Nützliche Funktionen

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

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R) artihmetische Mittel median() mean()

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

Der Download von R erfolgt über die homepage

Kurze Einführung in R

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

Programmieren mit statistischer Software

TU Bergakademie Freiberg Datenanalyse/Statistik Wintersemester 2016/ Übungsblatt. Homepage zur Übung unter:

Eine Einführung in R: Hochdimensionale Daten: n << p Teil II

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean()

Eine Einführung in R: Dichten und Verteilungsfunktionen

Material zur Vorlesung Räumliche Statistik

Eine Einführung in R: Dichten und Verteilungsfunktionen

Programmieren mit statistischer Software

Einführung in die Ökonometrie

MATLAB-Tutorium WS18 Nathalie Marion Frieß

Einführung in die formale Demographie Übung

Lineare Regressionen mit R (Ökonometrie SS 2014 an der UdS)

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean()

Aufgabe 35 mit R (Ökonometrie SS 2014 an der UdS)

Einführung in die Angewandte Bioinformatik: Datenanalyse mit R

Algorithmen und Datenstrukturen 03

Statistik für Informatiker, SS 2017 Organisatorisches, ein Startbeispiel und eine sehr knappe R-Einführung

Eine Einführung in R: Grundlagen I

Aufgaben zur Vorlesung Statistische Analyse von Systemen

FUNKTIONEN UND FORMELN IN

FORMELN IN. Referent: Daniel Laskow Betreuer: Eugen Betke Programmierung in R Arbeitsbereich Wissenschaftliches Rechnen Universität Hamburg

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

Eine Einführung in R: Grundlagen I

Einführung in die Programmierumgebung R Michael Wenk

Programmieren mit statistischer Software

Demographie III Übung

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

Univariate explorative Datenanalyse in R

Mathematische Computer-Software

Einführung in die statistische Sprache R

Theorie-Teil: Aufgaben 1-3: 30 Punkte Programmier-Teil: Aufgaben 4-9: 60 Punkte

R-Tutorial. R bietet zahlreiche Hilfe-Funktionen an. Informiere Dich über die Funktion log():

$Strasse [1] "Autobahn" "Landstr" "Nebenstr" "Autobahn" "Landstr" "Nebenstr" [7] "Autobahn" "Landstr" "Nebenstr" "Autobahn" "Landstr" "Nebenstr"

Was ist R? Warum R? Literatur Eine Beispielsitzung mit R. Einführung in R. Dr. Mike Kühne. Technische Universität Dresden Institut für Soziologie

R Befehle SS min(x) Bestimmt das Minimum von x Bestimmt die Anzahl der sum(x<=4) Werte von x, die kleiner oder max(x) Bestimmt das Maximum von x

Erste Schritte in R. 27. Oktober 2012 Statistik mit R Heike Zinsmeister WS 2011/12

Eine Einführung in R: Dichten und Verteilungsfunktionen

Univariate explorative Datenanalyse in R

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)

IDE Grundlagen Vektoren Matrizen Faktoren Dataframes Visualisierung Tips. Quick & dirty

Mit R können Rechenoperationen durch direkte Eingabe durchgeführt werden. Beispiel >(3*(5+7)^4)/3 [1] 20736

Algorithmen und Datenstrukturen 02

Eine Einführung in R: Grundlagen II

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

Einführung in die Programmierung (MA8003)

Einführung in die Programmierung (MA8003)

Präsenzübung (Einführung in R) Übung zur Vorlesung Statistik I für Biowissenschaften WS 2016/2017

Programmieren in R - Lösungen zum Kapitel Data Analysis Christoph Rust Oktober 2018

Der jämmerliche Versuch einer Einführung

Wichtige Befehle in R zur Datenanalyse Ergänzende Unterlagen zur Vorlesung Prof. Dr. Oliver Gansser

PROC MEANS. zum Berechnen statistischer Maßzahlen (für quantitative Merkmale)

Kurze Learning by Doing Einführung in R

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Statistische Datenanalyse

Philipp Sibbertsen Hartmut Lehne. Statistik. Einführung für Wirtschafts- und. Sozialwissenschaftler. 2., überarbeitete Auflage. 4^ Springer Gabler

Workshop Statistik mit R

Die einfachsten Anweisungen

Inhaltsverzeichnis. Bibliografische Informationen digitalisiert durch

Probeklausur Name: (c)

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Die grundlegenden Konzepte von R

Statistik mit und ohne Zufall

Besprechung der Aufgabe zur LDA

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

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Eine Einführung in R: Programmstrukturen

Lösungen zur Hausaufgabe Statistik für Hydrologen 2016

Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen

Inhalt. Einleitung... XIII

Lineare Regression in R, Teil 1

Statistics, Data Analysis, and Simulation SS 2017

Computer in der Wissenschaft

First Steps in R. Corpus Linguistics Heike Zinsmeister WS 2009/10

Datenanalyse und Programmierung in R eine Einführung 1

11.8 Diskriminanzanalyse

Statistische Software (R) Konstanten. Datentypen in R. Aufruf der Hilfeseiten zu grundlegende Operatoren und Funktionen: Paul Fink, M.Sc.

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Lösungen der Aufgaben zum Kapitel Data Analysis *

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

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

if ( Logischer Operator ) { } else { Anweisungen false

Vorlesung Statistik SS 2006

Transkript:

Einführung in R Wissensentdeckung in Datenbanken SS 2009 17. April 2009 R und Editoren für R: Auf den Poolrechnern der Fakultät Statistik (M/711 und M/U18, Mathe-Tower, Campus Nord) ist R installiert. R und zusätzliche Pakete für diverse Betriebssysteme können frei unter http://cran.r-project.org heruntergeladen werden. Wenn längere Programme geschrieben werden, ist es sinnvoll einen Editor zu benutzen. Auf den Statistik Pool-Rechnern ist WinEdt mit der Erweiterung R-WinEdt installiert. Frei erhältlich sind z.b. Emacs mit Erweiterung ESS (http://ess.r-project.org/), Tinn-R (nur für Windows) (http://sourceforge.net/projects/tinn-r). Rechnen mit R: 1 + 3 * 5 # [1] 16 exp(1) # Kommentar # [1] 2.718282 exp(0) # [1] 1 exp # function (x).primitive("exp") pi # Kreiszahl pi # [1] 3.141593 1

Zuweisungen: x <- 5 # die 5 wird x zugewiesen x print(x) # [1] 5 # x ausgeben Vektoren erzeugen und indizieren: c(1,3,5) # [1] 1 3 5 # Vektor der Länge 3, c steht für concatenate oder combine rep(3,5) # 5-maliges Wiederholen der 3 # [1] 3 3 3 3 3 1:5 # ganze Zahlen von 1 bis 5 # [1] 1 2 3 4 5 x <- seq(1,5,2) # jede zweite ganze Zahl von 1 bis 5 x #[1] 1 3 5 length(x) # Wie lang ist x? # [1] 3 x[1] # [1] 1 # erstes Element von x x[c(1,2)] # [1] 1 3 # die ersten beiden Elemente von x x[x > 3] # [1] 5 # alle Elemente von x, die gröÿer als 3 sind x[x == 3] # [1] 3 # alle Elemente von x, die gleich 3 sind 2

Ein paar nützliche Funktionen: Funktion max(), min() abs() sqrt() round(), floor(), ceiling() sum(), prod() log(), exp() Beschreibung Maximum und Minimum Betrag Wurzel runden Summe, Produkt (natürlicher) Logarithmus, e-funktion Das Hilfesystem: help.search("fourier") help("sum")?sum # Was gibt es zum Thema Fourier? # Dokumentation der Funktion sum aufrufen # in der Konsole: Hilfe -> HTML Hilfe # starten der Hilfe im HTML Format help.start() Datentypen und Datenstrukturen: # numeric x <- seq(1,5,2) class(x) # [1] "numeric" mode(x) # [1] "numeric" str(x) # num [1:3] 1 3 5 is.numeric(x) # [1] TRUE # Informationen über Datentyp und Datenstruktur von x # Ist x vom Typ numeric? numeric(5) # Nullvektor der Länge 5 # [1] 0 0 0 0 0 # character # Buchstaben und Zeichenfolgen x <- c("w", "m", "w") class(x) # [1] "character" 3

mode(x) # [1] "character" str(x) # chr [1:3] "w" "m" "w" is.character(x) # [1] TRUE # Ist x vom Typ character? # factor # qualitative Variablen x <- factor(x) class(x) # [1] "factor" mode(x) # [1] "numeric" str(x) # Factor w/ 2 levels "m","w": 2 1 2 # logical # logische Werte x <- 1:3 x > 2 # Vektoren c(true, "w", 1:5) # wild gemischte Datentypen # Matrizen x <- matrix(1:9,3,3) # 3*3-Matrix mit Einträgen 1 bis 9 # [,1] [,2] [,3] # [1,] 1 4 7 # [2,] 2 5 8 # [3,] 3 6 9 class(x) # [1] "matrix" str(x) # int [1:3, 1:3] 1 2 3 4 5 6 7 8 9 mode(x) # [1] "numeric" x[1,2] # Eintrag in Zeile 1 und Spalte 2 # [1] 4 4

x[x > 5] # [1] 6 7 8 9 # Einträge von x, die gröÿer als 5 sind # Data Frames Daten <- data.frame(name = c("x","y","z"), Groesse = c(171, 180, 159), Gewicht = c(60, 65, 70), Geschlecht = c("w", "m", "w")) Daten Name Groesse Gewicht Geschlecht 1 X 171 60 w 2 Y 180 65 m 3 Z 159 70 w class(daten) [1] "data.frame" str(daten) 'data.frame': 3 obs. of 4 variables: $ Name : Factor w/ 3 levels "X","Y","Z": 1 2 3 $ Groesse : num 171 180 159 $ Gewicht : num 60 65 70 $ Geschlecht: Factor w/ 2 levels "m","w": 2 1 2 mode(daten) [1] "list" Daten$Name # [1] X Y Z # Levels: X Y Z Daten[,1] # [1] X Y Z # Levels: X Y Z 5

Fehlende Werte: x <- c(4, NA, 19) x # [1] 4 NA 19 # NA: Not Available x == NA # [1] NA NA NA is.na(x) # [1] FALSE TRUE FALSE Daten einlesen: daten <- read.table("c:/.../daten.txt", header = TRUE) str(daten) # 'data.frame': 3 obs. of 4 variables: # $ Name : Factor w/ 3 levels "X","Y","Z": 1 2 3 # $ Groesse : int 171 180 159 # $ Gewicht : int 60 65 70 # $ Geschlecht: Factor w/ 2 levels "m","w": 2 1 2 Statistik: mean(daten$groesse) median(daten$gewicht) quantile(daten$groesse,0.75) summary(daten) # arithmetisches Mittel # Median # 0.75-Quantil # Zusammenfassung verschiedener Kennzahlen var(daten$groesse) sd(daten$groesse) # Varianz # Standardabweichung range(daten$groesse) # Vektor aus Minimum und Maximum cov(daten$groesse, daten$ Gewicht) cor(daten$groesse, daten$ Gewicht) # Kovarianz von Groesse und Gewicht # Korrelation cov(daten[,2:3]) # Groesse Gewicht # Groesse 111-30 # Gewicht -30 25 # Kovarianzmatrix von Groesse und Gewicht 6

Grak:?plot data(iris) plot(iris$sepal.length, iris$sepal.width, col = as.numeric(iris$species)) pairs(iris, col = as.numeric(iris$species)) Übersicht Klassikationsverfahren: (siehe Ligges (2005), Tabelle 7.6, S. 144) Funktion Paket Beschreibung knn() class k-nearest-neighbor lda() MASS Lineare Diskriminanzanalyse naivebayes() e1071 Naive Bayes Klassikation NaiveBayes() klar Erweiterung der Naive Bayes Klassikation nnet() nnet Neuronale Netze mit einer versteckten Schicht qda() MASS Quadratische Diskriminanzanalyse rda() klar Regularisierte Diskriminanzanalyse mda() mda Mixture Discriminant Analysis rpart() rpart Klassikations- und Regressionsbäume svm() e1071 Support Vector Machine svmlight() klar Support Vector Machine errorest() ipred Schätzung des Vorhersagefehlers (z.b. Fehlklassikationsrate) per Kreuzvalidierung oder Bootstrap predict() Vorhersage neuer Beobachtungen mit Hilfe gelernter Klassikationsregeln Pakete laden:?lda # Hilfe zur linearen Diskriminazanalyse # No documentation for 'lda' in specified packages and libraries: # you could try '??lda'??lda # wie help.search("lda") library(mass)?lda # jetzt klappt es 7

Zufallszahlen: ## diskret: # 2 Zufallszahlen aus der diskreten Gleichverteilung auf {1,...,5}: sample(x = 1:5, size = 2, replace = TRUE) # 2 Zufallszahlen aus der Binomialverteilung mit Parametern n = 10, p = 0.2: rbinom(n = 2, size = 10, prob = 0.2) ## stetig: # 2 Zufallszahlen aus der stetigen Gleichverteilung auf (0,1): runif(n = 2, min=0, max=1) # 2 Zufallszahlen aus der Standardnormalverteilung: rnorm(n = 2, mean = 0, sd = 1) Eigene Funktionen schreiben: MeineFunktion <- function(argumente){ Anweisungen } f <- function(x, y = 3){ x + y } f(2,5) # [1] 7 Schleifen (siehe Ligges (2005), Tabelle 2.5, S. 51) Schleife Beschreibung repeat{anweisungen} Wiederholung der Anweisungen while(bedingung){anweisungen} Wiederholung, solange Bedingung erfüllt ist for(i in M){Anweisungen} Wiederhole Anweisungen für jedes i M next Sprung in den nächsten Iterationsschritt break Sofortiges Verlassen der Schleife 8

for(i in 1:5){ print(f(i,5)) } # [1] 6 # [1] 7 # [1] 8 # [1] 9 # [1] 10 sapply(1:5, f) # [1] 4 5 6 7 8 Literatur Ligges, U. (2005): Programmieren mit R. Springer, Berlin. 9