R-Kurs · Kapitel 12 · Zufallszahlen & -stichproben in R
Zufallszahlen & -stichproben in R
Reproduzierbare Zufallszahlen
Der Zufallsgenerator ist ein Pseudo-Generator: Mit set.seed() wird die
Folge reproduzierbar. rnorm, runif erzeugen Zufallszahlen.
set.seed(42)
rnorm(5) # 5 Werte aus N(0,1)
set.seed(42)
rnorm(5) # exakt dieselben Werte [1] 1.3709584 -0.5646982 0.3631284 0.6328626 0.4042683
[1] 1.3709584 -0.5646982 0.3631284 0.6328626 0.4042683 Ziehen mit sample()
sample(x, n, replace = TRUE) zieht n Werte (mit Zurücklegen) aus x — ideal
zum Simulieren von Würfeln, Karten usw.
set.seed(1)
wuerfe <- sample(1:6, 60, replace = TRUE) # 60 Würfelwürfe
prop.table(table(wuerfe)) # relative Häufigkeiten # relative Häufigkeiten, alle um 1/6 ≈ 0.167
# (die exakten Werte hängen von R-Version/seed ab) Simuliere 100 faire Münzwürfe („Kopf”/„Zahl”) und gib die absolute
Häufigkeitstabelle aus (mit set.seed(7) für ein reproduzierbares Ergebnis).
💡 Tipp
sample(c(...), n, replace = TRUE); vorher set.seed für Reproduzierbarkeit.
Lösung zeigen
set.seed(7)
muenze <- sample(c("Kopf","Zahl"), 100, replace = TRUE)
table(muenze) # etwa 50 : 50 (z. B. Kopf 54, Zahl 46) Simulation: Gesetz der großen Zahlen
Mit mehr Wiederholungen nähert sich die relative Häufigkeit dem theoretischen Wert an:
set.seed(123)
mean(sample(1:6, 100000, replace = TRUE) == 6) # rel. Häufigkeit "Sechs" # ≈ 0.167 (nahe am theoretischen Wert 1/6) Merke: Immer
set.seed(...)vor der Zufallsziehung setzen, wenn das Ergebnis reproduzierbar sein soll (Übungen, Klausur, Berichte).
Abruf-Quiz
Frage 1 / 2Wozu dient set.seed(42)?