Llamada R (lenguaje de progtwigción) desde .net

Estoy trabajando en una aplicación que requiere una gran cantidad de procesamiento y producción estables como imágenes en una aplicación de escritorio .net. Los problemas, incluida la generación de imágenes de salida, parecen un ajuste natural para R http://www.r-project.org/

¿Hay un contenedor, API, SDK o puerto que me permita llamar a R desde .net?

R.NET tiene muchos errores con la versión más nueva de R. Y si no funciona bien, funciona terriblemente (y seguirá haciéndolo a menos que sepa exactamente cómo solucionarlo).

Personalmente, recomendaría usar archivos de script R y ejecutarlos. Lo que debes hacer es comenzar tu guión R con

> 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 + ) 

Y desde .NET, debe incluir el espacio de nombres System.Diagnostics tipeando using System.Diagnostics y luego escriba este código:

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

A continuación, puede utilizar un StreamReader como este:

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

Y luego analícelo como lo desee (vea RegEx y el método de división de una cuerda si necesita ayuda con eso también).

¡Espero que esto ayude!

Encontré esta biblioteca más fácil de usar:

http://rdotnet.codeplex.com/

Algunas razones por las cuales:

  • Solo se requiere un solo ensamblado de .NET
  • El servidor DCOM en realidad requiere varios componentes de diferentes lugares
  • Uno de los componentes tiene una licencia muy restrictiva. Solo se permiten descargas directas desde el sitio web; no se permite ninguna otra forma de distribución, por defecto, lo que hará que el despliegue sea interesante.

Para el registro, si desea llamar a C # desde R, consulte rClr en https://rclr.codeplex.com/ .

Como dijeron otras personas, R.NET tiene muchas fallas. Para protegerse de los efectos de las nuevas versiones R, puede usar R-server (rserve) aquí .

A continuación, puede usar un rserve-client para ejecutar sus scripts R.
En sourceforge, encontrarás la versión de C # .

Necesitará R 1.5+ instalado en el servidor.