Laufzeiten – einen Vektor wachsen lassen
Einen Vektor wachsen zu lassen gehört zu den Todsünden in R; das solltest du immer vermeiden.
Die unten definierte Funktion growing() erzeugt n zufällige standardnormalverteilte Zahlen, vergrößert dabei aber jedes Mal die Länge des Vektors, wenn ein Element hinzugefügt wird!
Hinweis: Standardnormalverteilte Zahlen sind Zahlen aus einer Normalverteilung mit Mittelwert 0 und Standardabweichung 1.
n <- 30000
# Langsamer Code
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
Diese Übung ist Teil des Kurses
<Kurs>Effizient R-Code schreiben</Kurs>Übungsanweisungen
Die Funktion growing() ist bereits in deinem Workspace definiert.
- Ermittle mit der Funktion
system.time(), wie lange es dauert, mitgrowing()n = 30000standardnormalverteilte Zufallszahlen zu generieren. Verwende den<--Trick, um das Ergebnis in einem Vektor namensres_growzu speichern.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)