2016-05-31 11 views
3

Kann ich R, mit erforderlichen Submodulen (z. B. ggplot2) mit Nix-Shell?Nix-Shell mit R Interpreter und Submodule

Zum Beispiel mit Python mit Submodule:

nix-shell -p python34 python34Packages.pandas 

Allerdings kann ich nicht zu sehen scheinen, wie das Äquivalent mit R. zu tun

nix-shell -p R 

gibt mir ein Vanille-R, aber Was ist mit Submodulen? Ich bin mir nicht sicher, ob ich genug über nix-shell weiß, um nix Ausdrücke auszuwerten, aber könnte this von nix-shell als Befehl verwendet werden?

Hinweis: Es ist meine Präferenz nicht den Ausdruck aus den obigen Link in einem shell.nix oder default.nix Pop. Eher als ein einziger Befehl.

+1

Was ist falsch mit 'nix-Shell -P R rPackages.dplyr rPackages.ggplot2'? –

+0

@Alex viel einfacher. Ich habe die verlinkten Dokumente gesehen und angenommen, das würde nicht funktionieren. Könnten Sie das als Antwort aufschreiben? – Gilly

Antwort

2

Sie können die gleiche Methode verwenden, wie in Ihrem Python Beispiel:

nix-shell -p R rPackages.dplyr rPackages.ggplot2 
+0

Großartig, vielen Dank. Die Dokumentation mit rWrapper hat mich etwas verwirrt. – Gilly

3

Sie können einen Nix-Ausdruck an nix-shell mit dem -E Flag übergeben. So gilt folgendes:

nix-shell -E 'with import <nixpkgs> {}; rWrapper.override {packages = with rPackages; [ggplot2 reshape2];}' 
+0

Wir müssen wirklich das nix CLI verbessern. Während das obige das Problem löst, ist es ein Weg zu komplex. – knedlsepp

+0

Es ist, aber ich mache auch etwas komplizierter als das Übliche. Normalerweise würden Sie eine 'shell.nix' Datei verwenden, aber ich wurde direkt gestartet, um sie als Ersatz/Wrapper für den Aufruf von' R' in Emacs 'org-mode babel zu verwenden. – Gilly