我正在尝试将R与C#web应用程序接口。我尝试了许多解决方案,但无法通过。我得到的错误是:来自HRESULT的异常:0x80040013
private StatConnectorClass _statconnector = new STATCONNECTORSRVLib.StatConnectorClass(); _statconnector.Init( “R”); - >行显示HRESULT的异常:0x80040013
答案 0 :(得分:5)
几年前我使用COM方法与c#接口,但我放弃了,因为在每个版本更改时都存在类似于你提到的问题。另外,R(D)COM的许可方案对我来说有点模糊,.NET / COM / R游览有太多的角落。
我目前的选择是Rserve,维护得很好,从不让我失望。我曾为c#编写my own test bed,但我认为它已过时,因为RserveCLI更完整。
理论上{p> R.NET是一个更好的概念,但由于奇怪的原因,它被作者认为是“稳定的”,由于存在很多主要存在于内存管理中的错误,因此它是高度委婉的。太糟糕了,它从未起飞。答案 1 :(得分:4)
我相信R.NET是一种从C#访问R功能的更好方法。它全部在进程中运行,因此不需要运行外部R进程。
如果您安装the NuGet package,您将获得1.5版。这包含了我所做的一些内存管理修复,可以解决人们报告的大多数崩溃问题。正如Dieter指出的那样,我们通过F# RProvider广泛使用R.NET,并且它在最新版本中非常稳定。 RProvider还带有一个包装器生成器,它为R函数生成包装函数,可以在C#中使用。因此,例如,您可以将C#中的绘图函数称为R.plot(... params ...)。你得到了Intellisense。