A: so verwenden sie das microbenchmark-paket, um die ausführungszeit zu messen


Sie können das Microbenchmark- Paket in R verwenden, um die Ausführungszeit verschiedener Ausdrücke zu vergleichen.

Sie können dazu die folgende Syntax verwenden:

 library (microbenchmark)

#compare execution time of two different expressions
microbenchmark(
  expression1,
  expression2)
)

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Verwendung von microbenchmark() in R

Angenommen, wir haben den folgenden Datenrahmen in R, der Informationen über die von Spielern verschiedener Basketballteams erzielten Punkte enthält:

 #make this example reproducible
set. seed ( 1 )

#create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 500 ),
                 points=rnorm( 1000 , mean= 20 ))

#view data frame
head(df)

  team points
1 A 19.37355
2 A 20.18364
3 A 19.16437
4 A 21.59528
5 A 20.32951
6 A 19.17953

Nehmen wir nun an, wir möchten die durchschnittlichen Punkte, die die Spieler jeder Mannschaft erzielen, mit zwei verschiedenen Methoden berechnen:

  • Methode 1 : Verwenden Sie Aggregate() von Base R
  • Methode 2 : Verwenden Sie group_by() und summarise_at() von dplyr

Wir können die Funktion microbenchmark() verwenden, um die Zeit zu messen, die zum Ausführen jedes dieser Ausdrücke benötigt wird:

 library (microbenchmark)
library (dplyr)

#time how long it takes to calculate mean value of points by team
microbenchmark(
  aggregate(df$points, list(df$team), FUN=mean),
  df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
)

Unit: milliseconds
                                                                    express
                         aggregate(df$points, list(df$team), FUN = mean)
 df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
      min lq mean median uq max neval cld
 1.307908 1.524078 1.852167 1.743568 2.093813 4.67408 100 a 
 6.788584 7.810932 9.946286 8.914692 10.239904 56.20928 100 b

Die Funktion microbenchmark() führt jeden Ausdruck 100 Mal aus und misst die folgenden Metriken:

  • min : Mindestzeit, die für die Ausführung erforderlich ist
  • lq : Unteres Quartil (25. Perzentil) der zum Abschluss erforderlichen Zeit
  • Mittelwert : Durchschnittliche für die Ausführung erforderliche Zeit
  • Median : Mittlere Ausführungszeit
  • uq : oberes Quartil (75. Perzentil) der für die Ausführung erforderlichen Zeit
  • max : Maximale Zeit, die für die Ausführung benötigt wird
  • neval : Häufigkeit, mit der jeder Ausdruck ausgewertet wurde

Normalerweise betrachten wir nur die durchschnittliche oder mittlere Zeit, die für die Ausführung jedes Ausdrucks benötigt wird.

Aus dem Ergebnis können wir sehen:

  • Die Berechnung des Mannschaftspunktdurchschnitts mit der R-basierten Methode dauerte durchschnittlich 1.852 Millisekunden .
  • Die Berechnung der durchschnittlichen Punkte pro Team mithilfe der dplyr-Methode dauerte durchschnittlich 9,946 Millisekunden .

Basierend auf diesen Ergebnissen kommen wir zu dem Schluss, dass die Basis-R-Methode deutlich schneller ist.

Wir können auch die Funktion boxplot() verwenden, um die Verteilung der Zeiten zu visualisieren, die zum Ausführen jedes Ausdrucks erforderlich sind:

 library (microbenchmark)
library (dplyr)

#time how long it takes to calculate mean value of points by team
results <- microbenchmark(
  aggregate(df$points, list(df$team), FUN=mean),
  df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
)

#create boxplot to visualize results
boxplot(results, names=c(' Base R ', ' dplyr '))

Der Boxplot des Mikrobenchmark-Pakets ergibt R

Anhand der Boxplots können wir erkennen, dass die dplyr-Methode im Durchschnitt länger braucht, um den durchschnittlichen Punktwert pro Team zu berechnen.

Hinweis : In diesem Beispiel haben wir die Funktion microbenchmark() verwendet, um die Ausführungszeit zweier verschiedener Ausdrücke zu vergleichen. In der Praxis können Sie jedoch so viele Ausdrücke vergleichen, wie Sie möchten.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in R ausführen:

So löschen Sie die Umgebung in R
So löschen Sie alle Diagramme in RStudio
So laden Sie mehrere Pakete in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert