Я пытаюсь создать пример «Hello World» в R Language
с использованием R.Net версии 1.5.5 (загружен из NuGet). К сожалению, ни один из онлайн-образцов, которые я видел, не работает.Создание экземпляра REngine с использованием версии R.Net 1.5.5
ЭТО ТО, ЧТО Я УЖЕ СДЕЛАНО:
- Установленная Microsoft R Open 3.2.4, the enhanced R distribution
Установленная R Tools for Visual Studio (R версии 3.2.4 (2016-03-16))
Создал R Проект & протестировал простой скрипт
- Создано приложение MVC ция & ссылки R.Net версия 1.5.5 от NuGet
МОЯ ПРОБЛЕМА:
Все онлайн примеров, которые я видел, необходимо использовать более раннюю версию, потому что я не могу создать экземпляр REngine
для ЖИЗНИ меня! На самом деле, я получаю:
Dll не был найден
... еще C:\Program Files\Microsoft\MRO\R-3.2.4\bin\x64\r.dll
действительно существует.
Q: Как создать экземпляр REngine с использованием R.Net версии 1.5.5?
МОЯ выглядит код:
class Program
{
#region <Methods>
static void Main(string[] args)
{
SetupPath(); // current process, soon to be deprecated
using (REngine engine = REngine.CreateInstance("RDotNet"))
{
engine.Initialize(); // required since v1.5
CharacterVector charVec = engine.CreateCharacterVector(new[] {"Hello, R world!, .NET speaking" });
engine.SetSymbol("greetings", charVec);
engine.Evaluate("str(greetings)"); // print out in the console
string[] a = engine.Evaluate("'Hi there .NET, from the R engine'").AsCharacter().ToArray();
Console.WriteLine("R answered: '{0}'", a[0]);
}
Console.WriteLine("Press any key to exit the program");
Console.ReadKey();
}
public static void SetupPath()
{
var oldPath = System.Environment.GetEnvironmentVariable("PATH");
var rPath = @"C:\Program Files\Microsoft\MRO\R-3.2.4\bin\x64";
if (!Directory.Exists(rPath))
throw new DirectoryNotFoundException(string.Format(" R.dll not found in : {0}", rPath));
var newPath = string.Format("{0}{1}{2}", rPath, System.IO.Path.PathSeparator, oldPath);
System.Environment.SetEnvironmentVariable("PATH", newPath);
}
#endregion
}