Я хотел бы использовать API из R, который доступен только в .NET. Существует ли стандартный метод, который можно использовать для вызова .NET С# кода из R? Если да, то как я могу это сделать?
Вызов .NET/С# из R
Ответ 1
Еще один вариант, который могут рассмотреть читатели этой дискуссии, - это пакет rClr, над которым я уже пару лет работаю, чтобы получить доступ к произвольному .NET-коду из R. Это родной брат R.NET, который, наоборот, является способом доступа к R из .NET.
Чтобы дать аромат пакета rClr, канонический "Hello World" выглядит так:
library(rClr)
clrLoadAssembly('c:/path/to/myassembly.dll')
myObj <- clrNew('MyNamespace.MyClass,MyAssemblyName')
clrCall(myObj, 'SayHelloWorld')
Обратная связь и предложения приветствуются через веб-сайт.
Ответ 2
Предоставление .NET dll как COM-dll, а затем вызов COM-объекта в dll из R, кажется единственным способом. И есть пакет для него: http://cran.r-project.org/web/packages/rcom/rcom.pdf
Если вы не можете сделать COM-dll, потому что это сторонняя dll, вы всегда можете создать новую DLL-интерфейс, например .NET, с COM-интерфейсом, где вы можете назвать фактическую dll.