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!
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. 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. 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. 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. 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. Zeichenvektor
Die Werte, die die Steuervariable
durchläuft müssen nicht numerisch sein.!
for (buchstabe in c("a","b","c")) {!
!print(buchstabe)!
}!
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. 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. 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. 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. 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.!