Очень удобно иметь сценарии R для построения простых графиков из командной строки. Однако запускать R из сценариев bash совсем не удобно. В идеале может быть что-то вроде
#!/path/to/R
...
или
#!/usr/bin/env R
...
но я не смог заставить ни то, ни другое работать.
Другой вариант - хранить скрипты исключительно в R, например script.R
, и вызывать его с помощью R --file=script.R
или аналогичным образом. Однако иногда сценарий будет полагаться на неясные переключатели командной строки, в которых часть кода существует вне сценария. Пример: вводить что-то в R из bash через локальный .R-профиль, тогда желаемые переключатели --vanilla
подразумевают все, кроме--no-init-file
.
Другой вариант - сценарий bash для хранения флагов R и безболезненного выполнения, который затем вызывает сценарий R. Проблема в том, что это означает, что одна программа только что была разделена на два файла, которые теперь нужно синхронизировать, вместе переносить на новые машины и т. Д.
Вариант, который я в настоящее время меньше всего презираю, - это встраивание R в сценарий bash:
#!/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
Все в одном файле. Он исполняемый и легко обрабатывает аргументы. Проблема в том, что подобное сочетание bash и R в значительной степени исключает возможность того, что любая IDE не откажется от одного или другого, и заставляет мое сердце сильно болеть.
Есть ли лучший способ, которым я скучаю?