Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RCoreTeam2014.docx
Скачиваний:
48
Добавлен:
08.10.2015
Размер:
539.13 Кб
Скачать

В.4. Скрипты r

Если только необходимо исполнить команду R ‘foo.R , рекомендуемый путь состоит в том, чтобы использовать R CMD BATCH foo.R.Если необходимо исполнить его в фоновом режиме или как использование пакетного задания специфичные для ОС средства, чтобы сделать так: например в большинстве оболочек на Unix подобных ОС R CMD BATCH foo. R &исполняет0ся низкоприоритетным заданием.

Можно передать параметры скриптам через дополнительные аргументы в командной строке: например (где необходимо точное заключение в кавычки будет зависеть от используемой оболочки):

R CMD BATCH "--args arg1 arg2" foo.R&

передаст параметры скрипту, который может быть получен как символьный вектор args <-commandArgs (TRUE)

Можно сделать проще альтернативным Rscript, который может быть вызван: Rscript foo. rarg1 arg2

и это может также использоваться, чтобы записать исполнимые файлы скрипта как (по крайней мере, на Unix-подобных ОС, и в некоторых оболочках Windows)

#! /path/to/rscript

args <- commandArgs(TRUE)

...

q(status=<exit status code>)

Если это вводится в текстовый файл ‘RUnfoo’, и это сделано исполнимой программой (chmod 755 RUnfoo),это может быть вызвано для различных параметров runfoo arg1 arg2

Для дальнейших опций смотри help("rscript"). Результат будет записан R в ‘stdout’ и ‘stderr’, и это может быть перенаправлено обычным способом к оболочке, исполняющей командой.

Если не желателен установленный путь к rscript, то в пути можно исользовать (что обычно имеет место для установленного R за исключением Windows, но например, пользователи Mac OS X, возможно, должны прибавить ‘/usr/local/bin’ к их пути):#!/usr/bin/env rscript

...

По крайней мере, в Bourne #! механизм не позволяет дополнительные параметры, такие как #!/usr/bin/env rscript --vanilla.

Рассмотрим еще, к чему обращается stdin(). Это банально, чтобы записать скрипты R с сегментами как:

chem <- scan(n=24)

2.90 3.10 3.40 3.40 3.70 3.70 2.80 2.50 2.40 2.40 2.70 2.20

5.28 3.37 3.03 3.03 28.95 3.77 3.40 2.20 3.50 3.60 3.70 3.70

и stdin()обращается к файлу скрипта, чтобы позволить такое традиционное использование. Если необходимо обратиться к процессу‘stdin’, то используйте"stdin"в качестве соединенияfile, например,scan("stdin"...).

Другой способ записать исполнимые файлы скрипта (предложено Francois Pinard) состоит в том, чтобы использовать здесь документкак:

#!/bin/sh

[environment variables can be set here] R --slave [otheroptions] <<EOF rprogram goes here...

EOF

но здесь stdin()обращается к источнику программы, и "stdin"не будет применим.

Очень короткие скрипты можно передать к Rscriptв командной строке через флаг‘-e’.

Заметим, что на Unix-подобных ОС входное имя файла (такое как ‘foo.R’), не должно содержать ни метасимволы оболочки, ни пробелы.

Приложение c. Редактор командной строки

Существует следующие варианты редактирования исходного кода R:

  • для консоли R

  • для скриптов R

  • внешнего текстового редактора

При вызове RGui.exe открывается окно консоли R,в которой можно поместить любую последовательность команд, которые немедленно исполняются при распознании завершенности оператора языка R. Имеющийся в консоли текст может быть отредактирован. Возможности редактирования изложены в «Справка» в закладке «Консоль».

Любой новый текст на языке R может быть набран или отредактирован имеющийся с использованием понятия «Скрипт» из закладки «Файл». Открывается окно с название «Редактор R». Если это окно активно, то в «Справка» имеется закладка «Редактор», в которой изложена инструкция по использованию этого редактора.

Особенностью редактора для скриптов является возможность исполнения отдельного оператора или группы операторов по мере необходимости.

Оба указанные редакторы имеют крайне ограниченные возможности по редактированию и инструкции по ним минимальны. Поэтому здесь не будут излагаться, так как ими удобно воспользоваться при конкретной работе.

Среди сторонних редакторов следует Notepad++, который распознает программные тексты, написанные на R. Имеет широкие возможности по написанию и редактированию кода наR.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]