13

我想使用 R 中仅在 .NET 中可用的 API。是否有可用于从 R 调用 .NET C# 代码的标准方法?如果是这样,我该怎么做?

4

2 回答 2

14

本讨论的读者可能会考虑的另一个选择是rClr 包,我已经研究了几年来从 R 访问任意 .NET 代码。它是R.NET的兄弟,相反,它是一种方法从 .NET 访问 R。

为了给出 rClr 包的味道,规范的“Hello World”看起来像:

library(rClr)
clrLoadAssembly('c:/path/to/myassembly.dll')
myObj <- clrNew('MyNamespace.MyClass,MyAssemblyName')
clrCall(myObj, 'SayHelloWorld')

欢迎通过网站提供反馈和建议。

于 2013-09-06T00:28:15.227 回答
3

将 .NET dll 公开为 COM dll,然后从 R 调用 dll 中的 COM 对象似乎是唯一的方法。并且有一个包:http ://cran.r-project.org/web/packages/rcom/rcom.pdf

如果您无法制作 COM dll,因为它是第三方 dll,您始终可以使用 COM 接口创建一个类似接口的新 .NET dll,您可以在其中调用实际的 dll。

于 2012-09-20T02:41:51.660 回答