2015-07-20 5 views
2

Мы знаем, что мы можем вставлять AWK или SED непосредственно в BASH-скрипт awk {....} . Я хотел сделать что-то похожее на R такого, как mybashscript.sh R {....}Вставить код R в BASH unix script

без необходимости создания файла .r и вызвать файл .r от Баша, используя Rscript myRscript.R

Есть ли способ сделать это. Я искал везде, но не смог найти ответа. Пожалуйста помоги.

+1

Там также Литтлер программа Дирка Eddelbeutel в: http://dirk.eddelbuettel.com/code/ –

ответ

2

Bash способен выполнять инструкцию с произвольного языка сценариев. Он находится в форме VARIABLE_NAME=$(INTERPRETER -c "EMBEDDED CODE"). В случае R INTERPRETER -c будет заменено на R --arch i386 -q --slave -e. Опцией --arch может быть любая поддерживаемая архитектура, такая как i386 или x64, -q, чтобы интерпретатор печатал информацию о запуске, а --slave сохраняет выход как можно более чистым.

+0

Спасибо Билл. –

2

Вы можете легко вставлять R-код непосредственно в сценарий bash с помощью команды Rscript, и, в частности, относительно вашего вопроса - -e expr. Проверьте man Rscript.

Пример:

#!/bin/bash 

echo "This is a bash script" 
echo "Running R code..." 

Rscript -e 'cat("hello world")' 
+1

Спасибо, Мика, это такое изящное решение, я также обнаружил, что мы можем вставлять многострочный код, используя точку с запятой, такую ​​как Rscript -e 'x = c (1,2,3,4); печать (х)» –

Смежные вопросы