Ich schreibe ein Protokoll für eine reproduzierbare Analyse mit einem Inhouse-Paket "MyPKG". Jeder Benutzer wird seine eigenen Eingabedateien bereitstellen; Außer den Eingaben sollten die Analysen unter denselben Bedingungen ausgeführt werden. (z. B. so, dass wir daraus schließen können, dass unterschiedliche Ergebnisse auf verschiedene Eingabedateien zurückzuführen sind).Wie kann ich eine konsistente R-Umgebung zwischen verschiedenen Benutzern auf demselben Server sicherstellen?
MyPKG wird gerade entwickelt, daher wird library(MyPKG)
geladen, was auch immer die letzte Version war, die der Benutzer in seiner lokalen Bibliothek kompiliert hat. Es lädt auch alle Abhängigkeiten in ihren lokalen Bibliotheken.
Aber ich möchte, dass jeder eine bestimmte Version (MyPKG_3.14) für diese Analyse verwendet, während immer noch die Entwicklung neueren Versionen erlaubt. Wenn ich richtig verstehe, wird "R --vanilla" die gleichen Abhängigkeiten für alle laden.
Sobald wir fertig sind, werden wir die Arbeitsumgebung als VM speichern, um eine stabile reproduzierbare Umgebung zu erhalten. Also eine vorübergehende (6 Monate) Lösung wird ausreichen.
Ich habe zwei mögliche Lösungen gefunden, bin mir aber nicht sicher, ob beides ausreicht.
fragen Sie die Server-Admin MyPKG_3.14 in den Standard-R-Pfad zu installieren und dann im Protokoll den folgenden Code zur Verfügung stellen:
R --vanilla library(MyPKG) ....
oder
Kompilierung MyPKG_3.14 in a spezifische Bibliothek, z lib.loc = "/home/share/lib/R/MyPKG_3.14", und dann
R --vanilla library(MyPKG)
- ausreichend beiden Ansätze sind, um sicherzustellen, dass jeder läuft die gleiche Version?
- Ist einer der anderen vorzuziehen?
- Gibt es andere unvorhergesehene Probleme, die auftreten können?
- Gibt es eine bevorzugte Option für die Standardisierung der Mehrfachanalysen?
- Sollte ich einen Test der Ausgabe von
SessionInfo()
einschließen? - Wäre es besser, einen einzigen Account auf dem Server zu erstellen, den jeder nutzen kann?
Große Frage. Ich arbeite an diesem Thema als Teil eines größeren Projekts und plane, eine Bibliothek zu veröffentlichen, die nach jeder Ausführung Herkunftsspuren erzeugt. Es wäre einfach, zwei Traces zu vergleichen und zu sehen, ob der Unterschied nur neue Daten oder neue Bibliotheken sind, und man könnte sie nach Bedarf ändern, wenn unterschiedliche Ergebnisse angezeigt werden. Mailen Sie mir für weitere Details. – Maiasaura
@Maiasaura Ich sehe Ihre E-Mail nicht. Beginnt es mit Kram? –
ja. berkeley dot edu – Maiasaura