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

Вызов R (язык программирования) из .net

Я работаю над приложением, которое требует большой частичной обработки и вывода в виде изображений в рабочем приложении .net. Проблемы, в том числе генерация выходных изображений, кажутся естественными для R http://www.r-project.org/

Есть ли оболочка, API, SDK или порт, которые позволят мне вызвать R из .net?

4b9b3361

Ответ 1

R.NET довольно плохо работает с более новой версией R. И если он не работает правильно, он работает ужасно (и будет продолжать делать это, если вы точно не знаете, как его исправить).

Лично я бы рекомендовал использовать файлы R script и выполнить их. Что вам нужно сделать, это запустить R script с помощью

> sink()
> #set your working directory here with setwd()
> #your code comes in here
> sink(#name your output file here - could label it with a .txt if you please
+ )

И из .NET вы должны включить пространство имен System.Diagnostics, набрав using System.Diagnostics, а затем напишите этот код:

string strCmdLine;
strCmdLine = "R CMD BATCH" + /* the path to your R script goes here */;
System.Diagnostics.Process.Start("CMD.exe",strCmdLine);
process1.Close();

Затем вы можете использовать StreamReader следующим образом:

StreamReader ROutput = new StreamReader(/* your R output file path should go here */)

И затем проанализируйте его, как вам угодно (см. RegEx и метод разделения строк, если вам тоже нужна помощь).

Надеюсь, это поможет!

Ответ 2

Я нашел эту библиотеку проще в использовании:

http://rdotnet.codeplex.com/

Некоторые причины:

  • Требуется только одна сборка .NET
  • Сервер DCOM на самом деле требует нескольких компонентов из разных мест.
  • Один из компонентов имеет очень ограничительную лицензию. Разрешены только прямые загрузки с веб-сайта - никакая другая форма распространения не разрешена, по умолчанию, что сделает интересным развертывание.

Ответ 3

Для записи, если вы хотите вызвать С# из R, проверьте rClr на https://rclr.codeplex.com/.

Ответ 4

Как говорили другие люди, R.NET довольно глючит. Чтобы защитить себя от эффектов новых версий R, вы можете использовать R-server (rserve) здесь.

Затем вы можете использовать rserve-client для выполнения ваших R-скриптов.

В sourceforge вы найдете версию С#.

Вам понадобится R 1.5+, установленный на сервере.