Ich habe in R mehrere Beiträge zu Best Practice, Reproduzierbarkeit und Workflow gefunden, zum Beispiel:
- Wie man die längerfristige Reproduzierbarkeit der Forschung erhöht (insbesondere mit R und Sweave)
- Vollständige inhaltliche Beispiele reproduzierbarer Forschung mit R.
Eines der Hauptanliegen ist die Gewährleistung der Portabilität von Code in dem Sinne, dass das Verschieben auf einen neuen Computer (möglicherweise unter einem anderen Betriebssystem) relativ einfach ist und die gleichen Ergebnisse liefert.
Ich komme aus einem Python-Hintergrund und bin an das Konzept einer virtuellen Umgebung gewöhnt. In Verbindung mit einer einfachen Liste der erforderlichen Pakete wird so sichergestellt, dass die installierten Pakete und Bibliotheken auf jedem Computer ohne großen Aufwand verfügbar sind. Sicher, es ist keine Garantie - verschiedene Betriebssysteme haben ihre eigenen Schwächen und Besonderheiten -, aber es bringt Sie zu 95% dorthin.
Existiert so etwas in R? Auch wenn es nicht so raffiniert ist. Zum Beispiel einfach eine Nur-Text-Liste der erforderlichen Pakete und ein Skript verwalten, das alle fehlenden installiert?
Ich werde R zum ersten Mal ernsthaft einsetzen, wahrscheinlich in Verbindung mit Sweave, und möchte im Idealfall bestmöglich beginnen! Danke für deine Gedanken.
knitr
, nicht mit Sweave.Antworten:
Ich werde den Kommentar von @cboettig verwenden, um diese Frage zu lösen.
Packrat
Packrat ist ein Abhängigkeitsmanagementsystem für R. Bietet Ihnen drei wichtige Vorteile (alle auf Ihre Portabilitätsanforderungen ausgerichtet).
Isoliert: Wenn Sie ein neues oder aktualisiertes Paket für ein Projekt installieren, werden Ihre anderen Projekte nicht beschädigt und umgekehrt. Das liegt daran, dass packrat jedem Projekt eine eigene private Paketbibliothek gibt.
Tragbar: Transportieren Sie Ihre Projekte problemlos von einem Computer auf einen anderen, auch über verschiedene Plattformen hinweg. Packrat erleichtert die Installation der Pakete, von denen Ihr Projekt abhängt.
Reproduzierbar: Packrat zeichnet die genauen Paketversionen auf, von denen Sie abhängig sind, und stellt sicher, dass diese genauen Versionen überall installiert werden.
Was kommt als nächstes?
Exemplarische Vorgehensweise: http://rstudio.github.io/packrat/walkthrough.html
Die häufigsten Befehle: http://rstudio.github.io/packrat/commands.html
Verwenden von Packrat mit RStudio: http://rstudio.github.io/packrat/rstudio.html
Einschränkungen und Einschränkungen: http://rstudio.github.io/packrat/limitations.html
Update: Packrat ist veraltet und wird jetzt von renv abgelöst. Vielleicht möchten Sie stattdessen dieses Paket überprüfen.
quelle
requirements.txt
Datei erfassen und dann über installierenpip install -r ...
?snapshot
Befehl dafür.Der Anaconda-Paketmanager
conda
unterstützt das Erstellen von R-Umgebungen .conda create -n r-environment r-essentials r-base conda activate r-environment
Ich habe eine großartige Erfahrung
conda
damit gemacht, verschiedene Python-Installationen zu verwalten, sowohl benutzerspezifisch als auch mehrere Versionen für denselben Benutzer. Ich habe R mitconda
und getestetjupyter-notebook
und es funktioniert super. Zumindest für meine Bedürfnisse, einschließlich RNA-Sequenzierungsanalysen unter Verwendung derDEseq2
und verwandter Pakete sowiedata.table
unddplyr
. Es gibt viele Bioconductor-Pakete, dieconda
über Bioconda erhältlich sind, und laut den Kommentaren zu dieser SO-Frage scheint es, alsinstall.packages()
könnte dies auch funktionieren.quelle
.libPaths()
und versuchte dort neue Pakete zu installieren. Ich mussteexport R_LIBS_USER="/path/to/miniconda2/envs/r.3.3/lib/R/library"
im Terminal laufen, bevor ich R startete und versuchte, Pakete zu installieren. Noch testen, aber es sieht so aus, als würde es funktionieren.Es sieht so aus, als gäbe es eine andere Option von RStudio-Entwicklern, renv . Es ist auf CRAN verfügbar und ersetzt Packrat.
Kurz gesagt, Sie verwenden
renv::init()
, um Ihre Projektbibliothek zu initialisieren undrenv::snapshot()
/renv::restore()
, um den Status Ihrer Bibliothek zu speichern und zu laden.Ich ziehe diese Option Konda r-Umgebungen vor, da hier alles in der Datei gespeichert ist
renv.lock
, die für ein Git-Repo festgeschrieben und an das Team verteilt werden kann.quelle
Schauen Sie sich roveR an, die R-Container-Management-Lösung. Weitere Informationen finden Sie unter https://www.slideshare.net/DavidKunFF/ownr-technical-introduction , insbesondere auf Folie 12.
Führen Sie zum Installieren von roveR den folgenden Befehl in R aus:
install.packages("rover", repos = c("https://lair.functionalfinances.com/repos/shared", "https://lair.functionalfinances.com/repos/cran"))
Um die Leistungsfähigkeit von roveR voll nutzen zu können (einschließlich der Installation bestimmter Versionen von Paketen für die Reproduzierbarkeit), benötigen Sie Zugriff auf ein laiR. Für CRAN können Sie unsere laiR-Instanz unter https://lair.ownr.io zum Hochladen verwenden Wenn Sie Ihre eigenen Pakete mit Ihrer Organisation teilen möchten, benötigen Sie eine laiR-Lizenz. Sie können uns unter der E-Mail-Adresse in der oben verlinkten Präsentation kontaktieren.
quelle
Um dies hinzuzufügen:
Hinweis: 1. Haben Sie Anaconda bereits installiert? 2. Angenommen, Ihr Arbeitsverzeichnis ist "C:"
So erstellen Sie die gewünschte Umgebung -> "r_environment_name"
C:\>conda create -n "r_environment_name" r-essentials r-base
Verfügbare Umgebungen anzeigen
C:\>conda info --envs
. .. ...
Umgebung aktivieren
C:\>conda activate "r_environment_name" (r_environment_name) C:\>
Starten Sie Jupyter Notebook und lassen Sie die Party beginnen
Für eine ähnliche "Anforderungen.txt" hilft vielleicht dieser Link -> Gibt es so etwas wie Anforderungen.txt für R?
quelle
Wenn Sie nur prüfen möchten, ob Ihr Code auf alternativen Setups funktioniert, empfehle ich, zumindest im Moment kostenlos über die rstudio cloud zu testen.
quelle