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