Posiadanie skryptów R do wykonywania prostych wykresów z wiersza poleceń jest bardzo wygodne. Jednak uruchamianie R ze skryptów bash nie jest wcale wygodne. Ideałem może być coś takiego
#!/path/to/R
...
lub
#!/usr/bin/env R
...
ale nie byłem w stanie wykonać żadnej z tych czynności.
Inną opcją jest utrzymywanie skryptów wyłącznie w języku R, np. script.R
I wywoływanie ich za pomocą R --file=script.R
lub czegoś podobnego. Jednak czasami skrypt będzie polegał na niejasnych przełącznikach wiersza poleceń, w których część kodu istnieje poza skryptem. Przykład: zakradanie się rzeczy do R z bash przez lokalny .Rprofile, pożądane przełączniki są wtedy wszystkim, --vanilla
z wyjątkiem --no-init-file
.
Inną opcją jest skrypt bash do przechowywania flag R i bezbolesnego wykonywania, który następnie wywołuje skrypt R. Problem polega na tym, że oznacza to, że pojedynczy program został właśnie podzielony na dwa pliki, które teraz muszą być zsynchronizowane, przesyłane razem na nowe maszyny itp.
Opcją, którą obecnie najmniej gardzę, jest osadzenie R w skrypcie 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
Wszystko jest w jednym pliku. Jest wykonywalny i łatwo obsługuje argumenty. Problem polega na tym, że takie połączenie basha i R prawie eliminuje możliwość, że jakiekolwiek IDE nie zawiedzie na jednym lub drugim, i bardzo mocno boli mnie serce.
Czy brakuje mi lepszego sposobu?