Schleifen
Mark Heckmann
University of Bremen, Germany
www.markheckmann.de
Version Januar, 2014
© CC BY-NC 2.0 DE
Übliche Situation beim Rekodieren
Die Variablen in den Spalten 1 bis 10
sollen auf die gleiche Art rekodiert
werden!
libra...
Vereinfachung durch for-Schleife

rec <- "3=1; 2=2; 1=3; else=NA" !
!
for (i in 1:10) {!
!x[ , i] <- recode(x[ , i], rec)!...
Schleifen dienen dazu Codeblöcke
zu wiederholen
Bei jeden Durchlauf werden meist
kleiner Änderungen (z.B.
Variablenname) v...
Die forSchleife
Grundstruktur der for-Schleife
Beliebiger Name,
häufig i!

Ein Vektor
(numerisch,
Zeichen, logisch!

for (Steuervariable i...
Grundstruktur der for-Schleife
for (i in 1:3) {!
!i!
}!
!

Kein Fehler und trotzdem sehen wir
nichts. Wieso?!
Exkurs print Funktion
Wann immer etwas in R eingeben und Enter
drücken, erfolgt eine Ausgabe in der Konsole.
Dies Ausgabe ...
Exkurs print Funktion
for (i in 1:3) {!
!i!
}!

In Schleifen wird die print Funktion nicht
mehr automatisch aufgerufen. De...
Grundstruktur der for-Schleife
for (i in 1:3) {!
!print(i)!
}!
!

Die Steuervariable i nimmt der Reihe
nach die Werte in d...
Vereinfachung durch for-Schleife
rec <- "3=1; 2=2; 1=3; else=NA" !
!
for (i in 1:10) {!
!x[ , i] <- recode(x[ , i], rec)!
...
Your turn
Rekodiere die Werte der Variablen
des Datensatzes attitude wie
folgt mit Hilfe einer for-Schleife
[0, 30] = 1
]3...
Zeichenvektor
Die Werte, die die Steuervariable
durchläuft müssen nicht numerisch sein.!
for (buchstabe in c("a","b","c"))...
Your turn
Rekodiere die Werte der Variablen
des Datensatzes attitude wie
zuvor mit Hilfe einer for-Schleife.
Nutze jedoch ...
Anwendung: Indizieren
Durch die for-Schleife werden sukzessiv
die Indizes 1 bis 10 durchlaufen.
a <- NA !
for (i in 1:10) ...
Your turn
Generiere 1000 Mal 25 zufällige
Werte ~ N(100,15), berechne
jeweils den Mittelwert und
speichere das Ergebnis. B...
Anwendung: Datensätze verbinden
Wir haben einen Ordner mit vielen
Teildatensätzen
files <- dir()!
files!
!
[1] "2373254.cs...
Anwendung: Datensätze verbinden
Diese sollen zu einem großen Datensatz
zusammengefügt werden
files <- dir()!
!
d <- NULL!
...
Your turn
Schreibe eine Schleife, die
alle Dateien automatisiert
zusammenfügt
Nächste SlideShare
Wird geladen in …5
×

Schleifen in R

3.504 Aufrufe

Veröffentlicht am

for-Schleife in T

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.504
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Schleifen in R

  1. 1. Schleifen Mark Heckmann University of Bremen, Germany www.markheckmann.de Version Januar, 2014 © CC BY-NC 2.0 DE
  2. 2. Übliche Situation beim Rekodieren Die Variablen in den Spalten 1 bis 10 sollen auf die gleiche Art rekodiert werden! library(car)! ! rec <- "3=1; 2=2; 1=3; x[ , 1] <- recode(x[ , x[ , 2] <- recode(x[ , x[ , 3] <- recode(x[ , x[ , 4] <- recode(x[ , x[ , 5] <- recode(x[ , ...! else=NA" ! 1], rec)! 2], rec)! 3], rec)! 4], rec)! 5], rec)!
  3. 3. Vereinfachung durch for-Schleife rec <- "3=1; 2=2; 1=3; else=NA" ! ! for (i in 1:10) {! !x[ , i] <- recode(x[ , i], rec)! }!
  4. 4. Schleifen dienen dazu Codeblöcke zu wiederholen Bei jeden Durchlauf werden meist kleiner Änderungen (z.B. Variablenname) vorgenommen
  5. 5. Die forSchleife
  6. 6. Grundstruktur der for-Schleife Beliebiger Name, häufig i! Ein Vektor (numerisch, Zeichen, logisch! for (Steuervariable in Vektor) {! !R Befehl! !R Befehl! !...! Code, der bei jedem Durchlauf } ausgeführt wird!
  7. 7. Grundstruktur der for-Schleife for (i in 1:3) {! !i! }! ! Kein Fehler und trotzdem sehen wir nichts. Wieso?!
  8. 8. Exkurs print Funktion Wann immer etwas in R eingeben und Enter drücken, erfolgt eine Ausgabe in der Konsole. Dies Ausgabe wird von der Funktion print erzeugt. Die Funktion print wird immer „heimlich“ aufgerufen, wenn wir Enter drücken. Man kann dies jedoch auch explizit tun.! a <- 10! a! print(a)!
  9. 9. Exkurs print Funktion for (i in 1:3) {! !i! }! In Schleifen wird die print Funktion nicht mehr automatisch aufgerufen. Deshalb müssen wir dies explizit tun, wenn wir etwas in die Konsole schreiben wollen,! for (i in 1:3) {! !print(i) !! }
  10. 10. Grundstruktur der for-Schleife for (i in 1:3) {! !print(i)! }! ! Die Steuervariable i nimmt der Reihe nach die Werte in dem Vektor (hier 1:3) an. ! Im ersten Durchlauf die 1, im zweiten die 2, im dritten die 3. Fertig.
  11. 11. Vereinfachung durch for-Schleife rec <- "3=1; 2=2; 1=3; else=NA" ! ! for (i in 1:10) {! !x[ , i] <- recode(x[ , i], rec)! }! Neues Spalte i in jedem Durchlauf!
  12. 12. Your turn Rekodiere die Werte der Variablen des Datensatzes attitude wie folgt mit Hilfe einer for-Schleife [0, 30] = 1 ]30, 60] = 2 ]60, 100] = 3
  13. 13. Zeichenvektor Die Werte, die die Steuervariable durchläuft müssen nicht numerisch sein.! for (buchstabe in c("a","b","c")) {! !print(buchstabe)! }!
  14. 14. Your turn Rekodiere die Werte der Variablen des Datensatzes attitude wie zuvor mit Hilfe einer for-Schleife. Nutze jedoch diesmal die Variablennamen in der Schleife. [Hinweis: names() nutzen]
  15. 15. Anwendung: Indizieren Durch die for-Schleife werden sukzessiv die Indizes 1 bis 10 durchlaufen. a <- NA ! for (i in 1:10) {! !a[i] <- i^2! }!
  16. 16. Your turn Generiere 1000 Mal 25 zufällige Werte ~ N(100,15), berechne jeweils den Mittelwert und speichere das Ergebnis. Berechne anschließend die Streuung der Ergebnisse. Wie groß müsste die Streuung theoretisch sein?
  17. 17. Anwendung: Datensätze verbinden Wir haben einen Ordner mit vielen Teildatensätzen files <- dir()! files! ! [1] "2373254.csv" "2828478.csv" ! [3] "2828808.csv" "2828829.csv" ! [5] "2828860.csv" "2829204.csv" ! ...!
  18. 18. Anwendung: Datensätze verbinden Diese sollen zu einem großen Datensatz zusammengefügt werden files <- dir()! ! d <- NULL! ! x <- read.csv2(files[1])! d <- rbind(d, x)! ! x <- read.csv2(files[2])! d <- rbind(d, x)! ! etc.!
  19. 19. Your turn Schreibe eine Schleife, die alle Dateien automatisiert zusammenfügt

×