C#调用R可以有多种方式,我这里列举可以实现的方式:
0. 现成的方式是使用第三方写好的R-DOM Interface,具体介绍在
http://www.codeproject.com/Artic ... d-C-NET-Foundations 里面有讨论。
下面有自己可以动手实现的naive的调用方式,但是免去任何配置。
1. 直接通过Process调用RScript.exe传递R语言脚本路径后解析程序返回。
2. 通过F#编写实现TypeProvider的RTypeProvider来无缝调用R,然后在C#中调用F#编译的.NET程序集。
3. 由于Mathematica 9与R通过RLink实现了无缝连接,而Mathematica也提供了NETLink可以让.net程序调用Mathematica对象,那么可以间接地让C#通过Mathematica调用R,这样返回的对象也是.NET对象(此方法运行效率可能很低)