LoslegenKostenlos loslegen

Verschachtelte foreach-Schleifen für Kurstrends

Die Börse ist bekannt für ihr unvorhersehbares Verhalten. Du arbeitest für eine Investmentfirma, und dein Chef möchte die Trends der Aktienkurse über ein Fenster von einer Woche sehen.

Du hast die Daten der täglichen Aktienkurse von zehn Tech-Unternehmen seit 2015 beschafft. Die Data Scientistin bzw. der Data Scientist in deinem Team hat Code bereitgestellt, um Regressionsmodelle zu fitten. Du planst, diesen Code mit foreach(), %:% und %dopar% zu parallelisieren.

Die Gesamtzahl der zu iterierenden Spalten ist in deinem Workspace als ncols gespeichert, die Zeilenanzahl als nrows. Die Pakete parallel, doParalel und foreach wurden für dich geladen. Der Cluster cl wurde eingerichtet. Du musst die verschachtelten foreach()-Schleifen schreiben.

Diese Übung ist Teil des Kurses

Paralleles Programmieren in R

Kurs anzeigen

Anleitung zur Übung

  • Registriere den Cluster zur Verwendung mit foreach-Schleifen.
  • Definiere eine foreach-Schleife, die über die Spalten eins bis ncols iteriert, die Ergebnisse mit "cbind" sammelt und den Verschachtelungsoperator verwendet.
  • Definiere eine weitere foreach-Schleife, die über die Zeilen eins bis nrows iteriert, die Ergebnisse mit "c" sammelt und den do-parallel-Operator verwendet.
  • Stoppe den Cluster, wenn alle Berechnungen abgeschlossen sind.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Register the cluster to use with %dopar%
___
# Use foreach loop to iterate over columns one to ncol
moving_trend <- foreach(___, ___) %:%
# Iterate over rows one to nrows within each column
  foreach(___, ___) %dopar% {
    prices <- data[row:(row + 6), col]
    if (any(is.na(prices))) NA
    else {days <- 1:7
          model <- lm(prices ~ days)
          model$coefficients[2]}
  }
# Stop cluster  
___
print(paste("Total number of models fit:", sum(!is.na(moving_trend))))
Code bearbeiten und ausführen