LoslegenKostenlos starten

Laufzeiten – Pre-Allocation

In der vorherigen Übung hat das Wachsenlassen des Vektors etwa 2 Sekunden gedauert. Wie lange dauert es, wenn wir den Vektor vorab allokieren? Die Funktion pre_allocate() ist unten definiert.

n <- 30000
# Schneller Code
pre_allocate <- function(n) {
    x <- numeric(n) # Vorab allokieren
    for(i in 1:n) 
        x[i] <- rnorm(1)
    x
}

Diese Übung ist Teil des Kurses

<Kurs>Effizient R-Code schreiben</Kurs>
Kurs ansehen

Übungsanweisungen

Die Funktion pre_allocate() steht dir in deinem Workspace zur Verfügung.

  • Ermittle mit system.time(), wie lange pre_allocate(n) benötigt. Verwende den <--Trick, um das Ergebnis im Objekt res_allocate 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_allocate
n <- 30000
system.time(___ <- ___)
Code bearbeiten und ausführen