2015-04-24 2 views
1

Я разрабатываю пакет, который предоставляет интерфейс R (куча функций, которые будут использоваться в интерактивном режиме) и интерфейс командной строки через Rscript. Это второй один работает через небольшой пусковой, например, в командной строке:Как позвонить Rscript из R?

Rscript mylauncher.R arg1 arg2 arg3 

бы назвать функцию моего пакета. Я хотел бы проверить пару команд из R. Ничего необычного, просто убедитесь, что все работает без ошибок. Если я проверить эти вызовы делают в исходном файле R:

system("Rscript mylauncher.R arg1 arg2 arg3") 

Как я могу быть уверен, что я назвал правильный Rscript? В случае наличия нескольких установок R? (что на самом деле имеет место в моей настройке). Другой подход был бы записи в исходном файле R:

source("mylauncher.R") 

Но я не вижу, как указать командную строку (я бы избежать трюк перезапись функции commandArgs, потому что я хочу, чтобы проверить также правильная токенизация командной строки). У кого-нибудь есть идея?

Спасибо!

+0

Знаете ли вы, что «вы можете позвонить R из R»? Другими словами, вы не объяснили, почему вам нужно выйти в «Rscript», когда вы уже находитесь в R. –

+0

@DirkEddelbuettel Я считаю, что я объяснил это «Я бы хотел проверить пару команд из R», то есть я хотите проверить, не привели ли некоторые команды, написанные на терминале unix, к ошибке, и эта ошибка вызвана неправильной версией вызываемого Rscript. – JavaNewbie

+0

возможно (в системе Unix) 'system (" which Rscript ")'? –

ответ

1

Что касается

Как я могу быть уверен, что я назвал правильный Rscript? В случае, если есть несколько установок R?

вы запрос R RHOME в командной строке и Sys.getenv("R_HOME") из wihthin R.

Затем добавить bin/RScript и должны иметь Rscript, соответствующий текущей сессии. Я все еще разрабатываю свои библиотеки таким образом, чтобы их можно было называть из R ...

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