目前R和.NET双向的调用都有可用的接口。
从C#中调用R,简单地从C#做批处理计算,例如运行已经写好的R脚本,直接在C#中创建Process运行rscript.exe或者rcmd.exe,参数传递脚本文件名即可。如果要做交互,目前比较成熟的是利用R.NET项目,可以比较无缝地和R中的对象互动,请访问http://rdotnet.codeplex.com/,在前面的版本中存在频繁调用导致内存泄漏问题(参见我提出的issue #67: http://rdotnet.codeplex.com/workitem/67),目前似乎已经可以通过线程锁解决了。
F#调用R更简单,除了可以用R.NET来做,还可以用FSharpRProvider来做,代码更简单。参见http://bluemountaincapital.github.io/FSharpRProvider/,我也参与了一点贡献。
从R中调用.NET CLR,可以使用rClr扩展包,参见http://rclr.codeplex.com/,你可以从https://r2clr.codeplex.com/页面中下载,不过这个扩展包没有发布到CRAN,需要下载压缩包下来手动安装。使用方式就是初始化一个.NET虚拟机,类似于rJava创建JVM虚拟机,然后就可以加载一个.NET的dll,之后就可以创建对象和调用各种方法了。