Kurze Einführung in R

Ähnliche Dokumente
Kapitel 3. Programmieren in R. Vorlesung Programmieren in statistischer Software: R Sommersemester Bedingte Anweisungen, Schleifen, Funktionen

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

Datenaufbereitung, Grafische Datenanalyse

Statistisches Programmieren

Übersicht. Was ist R? Entstehung von R. Einführung in R - Eine Umgebung für statistisches Rechnen

Einführung in die C-Programmierung

Einführung in. Sven Hartenstein. Wintersemester 2007/2008. Friedrich-Schiller-Universität Jena. Einführung in (Sven Hartenstein) 1

0.1 R starten, R beenden Wenn man R startet, beginnt man einen Session. Man beendet einen Session mit

Einführung in die statistische Sprache R

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

Zusammenstellung der Befehle in R

Das einfachste Objekt ist ein Vektor, der aus mehreren Elementen besteht. Ein Vektor wird auf diese Weise erzeugt:

Wahrscheinlichkeitsrechnung und Mathematische Statistik für Informatiker Software Folien von JProf. Uwe Ligges. Jörg Rahnenführer WS 2013/2014

Programmieren in R. Institutsweiterbildung am 17. November 2005 Manuela Hummel und Ralf Strobl

Einführung in R. Christoph Dalitz. August Hochschule Niederhein Fachbereich Elektrotechnik & Informatik

Tag 9: Datenstrukturen

Matlab Einführung. Tobias Wunner

Einfaches Datenmanagement in R

Einführung in R. 1 Literatur und Software 1

Einführung in MATLAB

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

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

Empirische Softwaretechnik Datenanalyse mit R

Kapitel 1. R als Taschenrechner. Vorlesung Programmieren in statistischer Software: R Sommersemester Einleitung, Grundlagen

Matlab. Kap. I Basics of Matlab. Variablentypen und Nutzung Visualisierung in 2D und 3D. Jetzt geht s erst richtig los:

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Gewöhnliche Differentialgleichungen (ODEs) I

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

Herzlich Willkommen zur Informatik I. Programme in MATLAB. Funktionen schreiben im Matlab. Agenda

Informationsverarbeitung im Bauwesen

Modul 122 VBA Scribt.docx

Empirische Softwaretechnik. Einführung in das Statistikpaket R?! Entwickler von R. nicht vergleichbar mit den üblichen Statistikprogrammen

Boxplots von Projektionen

2.3 Univariate Datenanalyse in R

Jens Kappei. Vorlesung Numerische Basisverfahren 21./

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

R-WORKSHOP II. Inferenzstatistik. Johannes Pfeffer

Prozess und Statistik. Einführung in. Eine R-Übersicht und Motivation R in der täglichen Arbeit zu nutzen. Günter Faes faes.de.

Anwendungssoftware III (MATLAB)

MATLAB in Action. Marc Hanheide. Universität Bielefeld. Februar MATLAB starten Dokumentation & Hilfe The Art of Programming

1. Übung zu "Numerik partieller Differentialgleichungen"

R Reader Arbeiten mit dem Statistikprogramm R. von Jörg Groß & Benjamin Peters

W-Rechnung und Statistik für Ingenieure Übung

Effiziente Java Programmierung

Excel Funktionen durch eigene Funktionen erweitern.

Forefront TMG Scripting mit VBScript und Powershell

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Programmieren mit der Windows PowerShell. von. Nils Gutsche. (aka Vellas)

Anleitung für die Verwendung des CIP Pools von eigenen Rechner

Beispiel 19. December 4, 2009

Erwin Grüner

Was ist MATLAB? Typische Anwendungen

Aufgabe 2: Anzahl Erdbeben als Funktion der Zeit

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

MATLAB Onlinevorlesung. Dipl.-Inf. (FH) Patrick Rogge Seite 1

PHP 4. E i n e K u r z e i n f ü h r u n g. Vortragender: Kevin Bransdor Datum: Folie 1

Einführung in MATLAB zur Veranstaltung Einführung in die Numerik

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

S. Bouattour, D. Paulus 21. Mai 2003

Grundlagen der Informatik 2

Internetanbindung von Datenbanken

Hinweis. PKAntonitsch, 20. April 2002 (für kritische Rückmeldungen:

<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1>

Dr. Monika Meiler. Inhalt

Einführung in die Java- Programmierung

2D - Plotten / Visualisierung

Chemotaxis and Migration Tool Version 1.01 Visualization and data analysis of chemotaxis and migration processes based on ImageJ

Tipps und Tricks für Matlab

10 Lesen und Schreiben von Dateien

E-PRIME TUTORIUM Die Programmiersprache BASIC

Multimedia im Netz Wintersemester 2011/12

Einführung in QtiPlot

Sin-Funktion vgl. Cos-Funktion

Modellierung und Programmierung

Projekt: Python Programmierung

VHDL Verhaltensmodellierung

INTELLIGENTE DATENANALYSE IN MATLAB

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

Eine Kurzanleitung zu Mathematica

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Mathematik am Computer 7. Vorlesung: Matlab, Teil II

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Makro Programmierung User Interface (Entwicklungs- Umgebung) Grafische Werkzeugbox. GUI Form erstellen (UserForm)

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Linux - a bit advanced

Computational Analysis

Modellierung und Programmierung 1

Statistische Software P. Fink. Statistische Software (R) Wiederholungshausübung SoSe 2015

1. häufige Eingabe-Fehler Klammern vergessen, Komma statt Dezimalpunkt, Verwechslung von Vorzeichen- und Rechenzeichen-Minus

Objektorientierte Programmierung

LINGO: Eine kleine Einführung

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Projektaufgaben Block 2

Description of version PASO MD2


Transkript:

Dr. Katharina Best Sommersemester 2011 Kurze Einführung in R WiMa-Praktikum Erste Schritte R wird durch Eintippen von R in der Konsole gestartet. Beendet wird es durch q() oder quit(). Es existieren auch integrierte Lösungen mit Editoren. Die interessanteste Variante ist ESS Emacs Speaks Statistics Hilfe findet sich unter help.start(); help(sum);?sum; example(mean); Zuweisung von Zahlen > x <- 3 > y <- exp(x) - 2 * 3 + 4/5 Ergebnis ansehen > y [1] 14.88554 Vektoren bilden > x <- c(1, 7, 4, 2, 5) > y <- exp(x) - 2 > y [1] 0.7182818 1094.6331584 52.5981500 5.3890561 146.4131591 Seite 1 von 12

> y[2] <- 1 > y [1] 0.7182818 1.0000000 52.5981500 5.3890561 146.4131591 Folgen bilden > rep(1, 5) [1] 1 1 1 1 1 > rep(1:5, times = 2) [1] 1 2 3 4 5 1 2 3 4 5 > rep(1:5, each = 2) [1] 1 1 2 2 3 3 4 4 5 5 > rep(1:5, length = 2) [1] 1 2 > 1:5 [1] 1 2 3 4 5 > seq(1, 5) [1] 1 2 3 4 5 > seq(1, 17, by = 4) [1] 1 5 9 13 17 > seq(1, 5, by = 0.5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > 2:10/2 [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > seq(1, 20, length = 5) [1] 1.00 5.75 10.50 15.25 20.00 Auf Elemente von Vektoren zugreifen Seite 2 von 12

> x <- 1:100/10 > x[1:10] [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 > x[c(1, 10, 15)] [1] 0.1 1.0 1.5 > x[c(10, 1, 15)] [1] 1.0 0.1 1.5 > x[x > 4.5] [1] 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 [16] 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.2 7.3 7.4 7.5 [31] 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9.0 [46] 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 > x > 4.5 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE [49] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [73] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [85] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [97] TRUE TRUE TRUE TRUE > x[-(1:10)] [1] 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 [16] 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 [31] 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 [46] 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 [61] 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 [76] 8.6 8.7 8.8 8.9 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 Vektoren sortieren > x <- c(3, 2, 5, 1, 7) > y <- c(1, 1, 4, 6, 2) > sort(x) [1] 1 2 3 5 7 > order(x) Seite 3 von 12

[1] 4 2 1 3 5 > x[order(x)] [1] 1 2 3 5 7 > o <- order(x) > x[o] [1] 1 2 3 5 7 > y[o] [1] 6 1 1 4 2 Vektoren mit Zeichenfolgen > c(rep("ill", 10), rep("healthy", 10)) [1] "ill" "ill" "ill" "ill" "ill" "ill" "ill" [8] "ill" "ill" "ill" "healthy" "healthy" "healthy" "healthy" [15] "healthy" "healthy" "healthy" "healthy" "healthy" "healthy" > x <- 10 > name <- "The object x" > cat(name, "equals", x, "\n") The object x equals 10 Informationen über Vektoren > length(rnorm(10)) [1] 10 > unique(c(rep("ill", 10), rep("healthy", 10))) [1] "ill" "healthy" Matrizen > x <- c(1, 2, 3, 4) > matrix(x, nrow = 2, ncol = 2) [,1] [,2] [1,] 1 3 [2,] 2 4 > matrix(x, 2, 2, byrow = TRUE) Seite 4 von 12

[,1] [,2] [1,] 1 2 [2,] 3 4 > diag(3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 > diag(x = 10, nrow = 3, ncol = 4) [,1] [,2] [,3] [,4] [1,] 10 0 0 0 [2,] 0 10 0 0 [3,] 0 0 10 0 > A <- matrix(1:16, 4) > B <- matrix(1:2, 4, 4) Matrizenoperationen > A + B [,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16 [3,] 4 8 12 16 [4,] 6 10 14 18 > A * B [,1] [,2] [,3] [,4] [1,] 1 5 9 13 [2,] 4 12 20 28 [3,] 3 7 11 15 [4,] 8 16 24 32 > A %*% B [,1] [,2] [,3] [,4] [1,] 46 46 46 46 [2,] 52 52 52 52 [3,] 58 58 58 58 [4,] 64 64 64 64 > A %x% diag(2) Seite 5 von 12

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 0 5 0 9 0 13 0 [2,] 0 1 0 5 0 9 0 13 [3,] 2 0 6 0 10 0 14 0 [4,] 0 2 0 6 0 10 0 14 [5,] 3 0 7 0 11 0 15 0 [6,] 0 3 0 7 0 11 0 15 [7,] 4 0 8 0 12 0 16 0 [8,] 0 4 0 8 0 12 0 16 > diag(2) %x% A [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 5 9 13 0 0 0 0 [2,] 2 6 10 14 0 0 0 0 [3,] 3 7 11 15 0 0 0 0 [4,] 4 8 12 16 0 0 0 0 [5,] 0 0 0 0 1 5 9 13 [6,] 0 0 0 0 2 6 10 14 [7,] 0 0 0 0 3 7 11 15 [8,] 0 0 0 0 4 8 12 16 Auf Werte in Matrizen und Informationen zugreifen > dim(b) [1] 4 4 > A[, 1] [1] 1 2 3 4 > A[1, ] [1] 1 5 9 13 > A[3, 1] [1] 3 Höher dimensionale Arrays > x <- array(1:27, dim = c(3, 3, 3)) > x[1,, ] [,1] [,2] [,3] [1,] 1 10 19 [2,] 4 13 22 [3,] 7 16 25 Seite 6 von 12

> x[1, 2, ] [1] 4 13 22 Lists > course.info <- list(students = c("sandra", "Karl", "Thomas", + "Nadine"), nr.of.exercises = 100, rooms = c("multimedia Room", + "Seminar Room")) > course.info$rooms [1] "Multimedia Room" "Seminar Room" > course.info$students[2] [1] "Karl" Zufallsvariablen und Verteilungen > rnorm(10) [1] -1.05283202 1.03829966-1.19893243-0.85100357 0.28439932-1.13938751 [7] -0.31076647-0.52582979 0.22304642-0.07904784 > rnorm(10, mean = 5, sd = 2) [1] 2.875791 4.708124 6.113218 4.724995 5.543958 6.838029 4.609193 6.011188 [9] 6.762374 4.654707 > qnorm(0.975) [1] 1.959964 > pnorm(0) [1] 0.5 > dnorm(0) [1] 0.3989423 Vorhandene Datensätze nutzen > data(cars) > attach(cars) Seite 7 von 12

Histogram of speed Frequency 0 5 10 15 0 5 10 15 20 25 Graphik speed > plot(speed, dist) dist 0 20 40 60 80 100 120 5 10 15 20 25 speed > plot(speed, dist, type = "l") > abline(a = mean(dist), b = sd(dist)) > curve(8.86 + 0.13 * x^2, add = TRUE, col = "red") Seite 8 von 12

dist 0 20 40 60 80 100 120 5 10 15 20 25 speed Probability Plots > qqplot(rnorm(1000, 1, 1), rnorm(1000, -1, 1)) rnorm(1000, 1, 1) 4 3 2 1 0 1 2 2 1 0 1 2 3 4 rnorm(1000, 1, 1) > qqnorm(rnorm(1000, 1, 0)) Seite 9 von 12

Normal Q Q Plot Sample Quantiles 0.6 0.8 1.0 1.2 1.4 3 2 1 0 1 2 3 Theoretical Quantiles Eigene Funktionen definieren > sum.of.squares <- function(x) { + sum(x^2) + } > sum.of.squares(c(1, 3, 5, 7)) [1] 84 Schleifen > for (i in 1:10) { + print(i^2) + } [1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36 [1] 49 [1] 64 [1] 81 [1] 100 > for (name in c("i", "want", "to", "go", "home!")) { + cat(name, "\n") + } Seite 10 von 12

I want to go home! > while (rnorm(1) < 1) { + print("hallo") + } [1] "hallo" [1] "hallo" [1] "hallo" Zu beachten ist, dass R Schleifen sehr langsam abarbeitet (wie Matlab). Deswegen sollte man bei wiederkehrenden Berechnungen diese nach Möglichkeit direkt auf Matrizen und Arrays anwenden. Dazu bietet R die Funktionen apply(), mapply(), sapply() und tapply(). Bedingungen > if (rnorm(1) > 0) { + print("rnorm generated a positive value.") + } else { + print("rnorm generated a negative value.") + } [1] "rnorm generated a positive value." Wo bin ich und was habe ich gemacht? Bisher benutzte Befehle können mit history(max.show = 10) eingesehen werden. > savehistory(file = "first.session.rhistory") > getwd() [1] "~/katharina/dokumente/wimapraktikum" Pakete verwenden Auflistung aller installierten Pakete mit library(). > library(kendall) > Kendall(rnorm(20), rnorm(20)) tau = -0.116, 2-sided pvalue =0.49566 Neue Pakete können von CRAN heruntergeladen werden. Externe Dateien nutzen > my.file <- file("test.r", "w") > cat("test <- function(x) {print(x)}", "\n", file = my.file) Seite 11 von 12

> close(my.file) > source("test.r") > test function (x) { print(x) } Und vor allem: Viel Spaß! Seite 12 von 12