Schleifen in R

3.078 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.078
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

×