Ich habe eine Datei mit dem Namen a.r
, es hat chmod
von 755,
sayHello <- function(){
print('hello')
}
sayHello()
Wie kann ich das über die Kommandozeile ausführen?
r
command-line
Sait
quelle
quelle
#!/usr/bin/env Rscript
Antworten:
Wenn Sie möchten, dass die Ausgabe auf dem Terminal gedruckt wird, verwenden Sie am besten Rscript
Beachten Sie, dass bei Verwendung
R CMD BATCH a.R
dieser Option anstelle der Umleitung der Ausgabe zum Standardausgang und der Anzeige auf dem Terminal eine neue Datei mit dem Namen a.Rout erstellt wird.Eine andere Sache, die Sie bei der Verwendung von Rscript beachten sollten, ist, dass das
methods
Paket standardmäßig nicht geladen wird, was zu Verwirrung führen kann. Wenn Sie sich also auf etwas verlassen, das diese Methoden bieten, sollten Sie es explizit in Ihr Skript laden.Wenn Sie die
./a.R
Art und Weise des Aufrufs des Skripts wirklich verwenden möchten, können Sie#!
oben im Skript eine entsprechende hinzufügenIch werde auch bemerken, dass wenn Sie auf einem * Unix-System laufen, es das nützliche Littler- Paket gibt, das eine einfache Befehlszeilen- Weiterleitung an R bietet. Ist es möglicherweise erforderlich, Littler zu verwenden, um glänzende Apps über ein Skript auszuführen? Weitere Details finden Sie in dieser Frage .
quelle
R CMD BATCH
ist schrecklich. Alles andere als das ...R CMD INSTALL -l ~/R/lib-dev
Dies beantwortet die Frage nicht direkt. Aber jemand könnte hier landen, weil er einen Oneliner von R vom Terminal aus ausführen möchte. Wenn Sie beispielsweise nur einige fehlende Pakete installieren und beenden möchten, kann dieser Oneliner sehr praktisch sein. Ich benutze es oft, wenn ich plötzlich herausfinde, dass ich einige Pakete vermisse und sie dort installieren möchte, wo ich will.
So installieren Sie am Standardspeicherort:
So installieren Sie an einem Speicherort, für den
root
Berechtigungen erforderlich sind :quelle
Rscript -e "getwd()"
im Terminal verwenden. Rscript druckt nur die Befehlsausgabe und nicht die vollständige R-Startnachricht.r -e "cat(getwd(),'\n')"
wenn Sie weniger installiert haben. In dieser Antwort erklärt Dirk Eddelbuettel den Unterschied zwischen Littler und Rscript.R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
werden, um die Ausführung anzuhalten und einen Fehlercode ungleich Null zu erhalten, falls die Installation fehlschlägt. Ansonsten sindinstall.packages
Fehler nur Warnungen.Eine weitere Möglichkeit, ein R-Skript über die Befehlszeile auszuführen, ist:
oder mit
--save
.Siehe auch Was ist der beste Weg, um R-Skripte in der Befehlszeile (Terminal) zu verwenden? .
quelle
Sie benötigen den
?Rscript
Befehl, um ein R-Skript vom Terminal aus auszuführen.Überprüfen Sie http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
Beispiel
quelle
So führen Sie Rmd im Befehl mit knitr und rmarkdown mit mehreren Befehlen aus und laden dann eine HTML-Datei in RPubs hoch
Hier ein Beispiel: Laden Sie zwei Bibliotheken und führen Sie einen R-Befehl aus
quelle
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
Eine weitere Möglichkeit, Rscript für * Unix-Systeme zu verwenden, ist die Prozessersetzung .
Dies entspricht natürlich der akzeptierten Antwort, ermöglicht es Ihnen jedoch, Ihre Datei zu bearbeiten und auszuführen, ohne die Leistung der Befehlszeile zu sparen, z.
Ähnlich lässt
Rscript -e "Rcode"
es sich auch ausführen, ohne in einer Datei zu speichern. Es kann also in Verbindung mit Skripten verwendet werden, die R-Code generieren, z.quelle
Nur zur Dokumentation müssen Sie das Skript manchmal wie folgt ausführen
sudo
:quelle