Подтвердить что ты не робот

Вызов скриптов R в Matlab

Можно ли вызвать R-скрипты в программе MATLAB? Как я могу это сделать?

4b9b3361

Ответ 1

Вы можете использовать R в пакетном режиме. Если R находится на вашем пути, вы можете позвонить из MATLAB:

system('R CMD BATCH infile outfile');

будет запускать код в файле infile и размещать в outfile.

EDIT: Вы также можете попробовать попробовать другой подход, используя пакет R rscproxy и R (D) COM-сервер, описанный здесь.

Ответ 2

После использования R (D) COM и Matlab R-link некоторое время я не рекомендую его. Интерфейс COM имеет проблемы при анализе многих команд, и отладить код сложно. Я рекомендую использовать системную команду из Matlab, как описано в R Wiki.

Ответ 3

system - почти наверняка путь, как описано в других ответах. Для полноты вы также можете использовать MATLAB для запуска Java-кода и JRI или RCaller, чтобы вызвать R из Java. Аналогично, вы можете использовать MATLAB для запуска .NET-кода и R.NET.

Ответ 4

Да. В Windows я многое сделал с помощью Matlab R-link, а затем R (D) COM-сервер на стороне R.

Он прекрасно работает для передачи команд и данных взад и вперед. Вызов R через ОС возможен, но тогда вы должны отделять (писать) и анализировать (загружать) данные, передаваемые между ними. Это утомительно и не весело. Особенно, если у вас много данных. Это также означает, что вы теряете состояние на стороне R, и каждый вызов так же, как в первый раз.

В Linux или другой ОС или даже для более общего использования я теперь попробую Rstudio в качестве сервера - см. http://www.rstudio.org/docs/server/getting_started для получения дополнительной информации.

Ответ 5

Другой способ RWiki рекомендуется:

 CurrentDirectory=strrep(pwd,'\','/');
 eval(['!C:\R\R-3.0.1\bin/Rscript "' CurrentDirectory '/Commands.R"'])

Ответ 6

Вы можете запускать функции командной строки в Matlab с помощью команды unix. Самым простым способом, вероятно, было бы установить R script, который выводит результаты в текстовый файл, запускает script в matlab с помощью команды unix, а затем (в matlab) проверяет, существует ли файл и загружает его вверх.

Ответ 7

Вы можете использовать команду system для выполнения R-скриптов. Что-то вроде следующего:

[status] = system('R CMD BATCH [options] script.R [outfile]')

где [параметры] - это параметры, которые вы отправляете интерпретатору R, а [outfile] - ваш выходной файл.