Звоните R (язык программирования) из .net - PullRequest
33 голосов
/ 17 февраля 2011

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

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

Ответы [ 5 ]

14 голосов
/ 19 июля 2012

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

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

> 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's path should go here */)

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

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

11 голосов
/ 21 декабря 2011

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

http://rdotnet.codeplex.com/

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

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

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

1 голос
/ 19 июля 2016

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

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

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

0 голосов
/ 15 сентября 2018

Блестящий является опцией.

Вы можете запустить блестящее приложение и открыть свой отчет как в браузере, так и в wpf браузере ..

Вот более подробное объяснение.Это на другом языке, но я попытался вставить английские ключевые слова.Весь курсив текст на английском языке.

Пример на другом языке, но с английскими ключевыми словами

...