einführung - uni-potsdam.dekahnert/mdacs/uebung1...grundlegendefunktionen speichernimrformat rm(x)...
TRANSCRIPT
Einführung
1 / 1
Einführung
2 / 1
Running R
WindowsAus MenüLese R Code ein – führt den Code auch gleich aus, eventuellmuss vorher das Verzeichnis gewechselt werden.
LinuxAuf der Konsole/Eingabeaufforderung: RmitR --no-save < commands.Rwird commands.R ausgeführt
3 / 1
Zusätzliche Software
Linux: Emacs und ESS (Emacs Speaks Statistics) zumArbeiten mit RLinux: Emacs oder OpenOffice zum Daten bearbeitenWindows: Excel oder OpenOffice zum Daten arbeitenLATEX zur Erzeugung von (pdf-, jpg-, ...) DokumentenJeder andere beliebige Editorviele andere GUIs (JGR - Java GUI for R, RPad, . . . )
4 / 1
Grundlegende Funktionen
?c, ?read.table – Hilfe zu c() oder read.tablehelp.search("c") – sucht in der Hilfe nach c
find("c") - liefert das package in dem c sich befindetquit(), example("c")library(mgcv) – lädt die bibliothek mgcv
library(help=mgcv) – liefert infos zu mgcv, welches objekte,funktionen etc.install.packages("akima") – installiert das package akima
5 / 1
Grundlegende Funktionen
objects(), ls() – zeigen an welche Objekte erstellt wurdensearch() – zeigt den Suchfpfad an, insbesondere welche Libsgeladen wurdenstr(x), strucure(x) – zeigen die Struktur eines Objektes ansummary(x) – gibt statistische Zusammenfassung desDatensatzes x aus
6 / 1
Grundlegende Funktionen
Speichern im R Formatrm(x) – löscht x aus dem Speichersave(x,file="file.dat") schreibt Daten x in die Dateifile
save.image(file="file") schreibt den „R-kern”, d.h. alleDaten usw. in die Datei file.Rdata, default Datei ist .Rdataload("file.dat") – lädt die Daten wieder in den Speicher
7 / 1
Objekte, Zahlen . . .
DatentypenAlles in R sind ObjekteJedes Objekt hat eine Länge und einen Typ (length(),mode())z.B. a<-1:10 erzeugt 1,2,...,10, der type ist numeric unddie Länge 10
Zahlen: 1.2e3, 3.9+4.5i, Inf, NaNNA – not available, undefiniert, z.B. a <- 1 ; length(a) <- 100Funktionsobjekte, Ausdrucksobjekte, . . .
8 / 1
Attribute
Einige Objekte besitzen Attribute, d.h. zusätzliche InformationDatenreihen können beschriftet werden, names, row.names
Klassen können erstellt werdenLevels (Faktorlevel)Dimension für Matrix, Arrays, oder allgemein Tensorenattributes(a) – zeigt alle Attribute anattr(a,"xyz") – zeigt spezielles Attributattr(a,"xyz")<-100 – setzt ein spezielles Attribut
9 / 1
Objekte als Sequenzen / Vektoren
Jedes Objekt hat eine Länge, das i.te Element kann mit a[i]gesetzt werdena<-numeric(250) – erzeugt numerischen Vektor mit 250Einträgenc() – kombiniert objektelength(x) – gibt die Länge eines objektes zurückmin(x), max(x), range(x)sort(x) – sortiert einen Vektor
10 / 1
Vektorarithmetik
y <- 2*x – multipliziert jedes Element aus x mit 2y <- sin(x) – berechnet von jedem Element aus x den Sinusy <- x1+x2 – summiert die beiden Vektoren x1 und x2,falls x1 und x2 unterschiedliche Länge haben wird der kürzereVektor zyklisch wiederholt
11 / 1
Vektoren – Sequenzen
x<-1:10 – erzeugt den Vektor 1,2...,10x<-seq(1,10) – erzeugt den Vektor 1,2...,10x<-seq(1,10,0.1) – erzeugt den Vektor 1,1.1,1.2,1.3..,9.9,10x<-seq(1,10.01,0.1) – erzeugt den Vektor1,1.1,1.2,1.3..,9.9,10,10.0x<-seq(1,10,len=5) – erzeugt 1,3.25,5.5,7.75,10x<-rep( 1:2 , times=5) – erzeugt 1,2,1,2,1,2,1,2,1,2x<-rep( 1:2 , each=5) – erzeugt 1,1,1,1,1,2,2,2,2,2x<-rep( c(1,2,3,4) , c(1,2,3,4) ) – erzeugt1,2,2,3,3,3,4,4,4,4
12 / 1
Listen
Ähnlich zu Vektoren, allerdings können die Typen in einer Listeunterschiedlich seinl <- list( 1 , 2 , 3 )
Ausserdem können die einzelnen Elemente gelabelt werdenl <- list( eins = 1 , zwei = 2 , drei = 1:10 )
Dann kann man die Elemente mit l$eins abrufen/ansprechen
13 / 1
Dataframes
Dataframes sind Listen der Klasse data.frame
Vektorstrukturen in einem Dataframe müssen die gleicheLänge habenwerden von d <- data.frame( eins=c(1:10) ,zwei=c(1:10) ) erzeugtDataframes werden von read.table() erzeugtattach(bacteria) – hängt einen dataframe an, d.h. diekomponenten können direkt angesprochen werdendetach(bacteria) – löscht detaches the dataframe bacteria,d.h. die komponenten können nicht direkt angesprochenwerden
14 / 1
Einlesen auf Daten
read.table("file") – liest daten aus file ein und erzeugteinen Data FrameZeilenlabel und Spaltenlabel werden versucht zu lesenEinzelen Spalten und Zeilen haben Namendata.dat:
Zeit x y1 1 1 12 2 2 1.53 3.5 2.5 1.25
inp <- read.table("data.dat")
inp <- scan("data.dat", list(0,"",0))
15 / 1
Funktionen
Definierenmy_pow <- function(x,i){if( i<=0 ) 1.0else x*my_pow(x,i-1)}
16 / 1
Aufgabe: Funktionen
1 Schreiben Sie Funktioneny = x ∗ xy =√
xy =
√x21 + x2
2y = arctan x1/x2
17 / 1
Schleifen – Loops
Schleifen sollten vermieden werden, sehr langsam.Allerdings sind die manchmal unabdingbar.Beispiel, die Zeitreihe der logistischen Abbildung -> Chaosxn+1 = 4xn(1− xn)n xn xn+11 0.5 0.43752 0.4375 0.984375. . .
a<-numeric(250)a[1] = 0.125for( i in 2:250 ) a[i] = 4.0*a[i-1]*(1.0-a[i-1])
18 / 1
Aufgabe: Schleifen
Ein Random Walk, d.h. xi+1 = xi + ξi , wobei ξi “weisses”Rauschen istξi ist normalverteilt, rnorm(100) erzeugt 100 normalverteilteZufallszahlenPlotten des Prozesses
19 / 1