LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

Die Funktion growing() ist bereits in deinem Workspace definiert.

  • Ermittle mit der Funktion system.time(), wie lange es dauert, mit growing() n = 30000 standardnormalverteilte Zufallszahlen zu generieren. Verwende den <--Trick, um das Ergebnis in einem Vektor namens res_grow zu 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(___ <- ___)
Code bearbeiten und ausführen