Es ist sehr praktisch, R-Skripte für einfache Diagramme über die Befehlszeile zu haben. Das Ausführen von R über Bash-Skripte ist jedoch überhaupt nicht bequem. Das Ideal könnte so etwas sein
#!/path/to/R
...
oder
#!/usr/bin/env R
...
aber ich war nicht in der Lage, eine dieser Arbeiten zu machen.
Eine andere Möglichkeit besteht darin, die Skripte z. B. in R zu script.R
belassen und sie mit R --file=script.R
oder ähnlichem aufzurufen . Gelegentlich stützt sich ein Skript jedoch auf undurchsichtige Befehlszeilenoptionen, an denen ein Teil des Codes außerhalb des Skripts vorhanden ist. Beispiel: Wenn Sie Dinge von Bash über ein lokales .R-Profil in R schleichen, sind die gewünschten Schalter dann alles --vanilla
außer --no-init-file
.
Eine andere Option ist ein Bash-Skript, um die R-Flags zu speichern und schmerzlos ausführbar zu sein, das dann das R-Skript aufruft. Das Problem ist, dass dies bedeutet, dass ein einzelnes Programm gerade in zwei Dateien aufgeteilt wurde, die jetzt synchron gehalten, zusammen auf neue Computer übertragen werden müssen usw.
Die Option, die ich derzeit am wenigsten verachte, ist das Einbetten des R in ein Bash-Skript:
#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT
Alles ist in einer einzigen Datei. Es ist ausführbar und kann problemlos mit Argumenten umgehen. Das Problem ist, dass das Kombinieren von Bash und R auf diese Weise die Möglichkeit, dass eine IDE auf der einen oder anderen Seite nicht ausfällt, so gut wie ausschließt und mein Herz sehr weh tut.
Gibt es einen besseren Weg, den ich vermisse?