Wie benutzt man knitr, um die Leistung verschiedener Versionen von R zu vergleichen?

8

Ich möchte die Leistung einiger Code in verschiedenen Versionen von R bewerten. Dies ist im Prinzip einfach:

  • Starten Sie R
  • Verwenden Sie system.time() , um die Zeit zu messen, die zum Ausführen eines Codeabschnitts benötigt wird
  • Beenden Sie R
  • Spülen und in einer anderen Version wiederholen

Ich möchte jetzt knitr verwenden, um einen Bericht dafür zu erstellen. Also, es scheint mir, ich brauche einen Mechanismus, um eine neue Sitzung in jedem Stück zu starten.

Wie mache ich das?

Einige Beispiele für knitr Markdown-Code, die als Demonstration dienen sollen. Dieser Code zeichnet eine Grafik mit ggplot , aber beide Versionen geben identische Timings zurück, da ich nicht weiß, wie man eine neue Version von R für jeden Chunk startet.

%Vor%     
Andrie 07.03.2013, 12:35
quelle

1 Antwort

6

Das Hinzufügen der Rscript Engine in knitr war einfach , aber ich wurde von ein R-Fehler . Wie auch immer, diese Engine ist seit Version 1.1.5 verfügbar und wird als Version 1.2 auf CRAN erscheinen.

Jetzt können Sie die Chunk-Option engine='Rscript' und engine.path='path/to/the/desired/Rscript' angeben.

Für große Leistungsvergleiche denke ich, was Ari B. Friedman im obigen Kommentar vorgeschlagen hat, ist ein besserer Weg. Es wird ziemlich mühsam sein, die Engine-Pfade einzugeben, wenn Sie viele Code-Chunks für Vergleiche haben.

    
Yihui Xie 10.03.2013, 03:51
quelle

Tags und Links