2016-05-10 1 views
3

Я пытаюсь создать пример «Hello World» в R Language с использованием R.Net версии 1.5.5 (загружен из NuGet). К сожалению, ни один из онлайн-образцов, которые я видел, не работает.Создание экземпляра REngine с использованием версии R.Net 1.5.5

ЭТО ТО, ЧТО Я УЖЕ СДЕЛАНО:

МОЯ ПРОБЛЕМА:
Все онлайн примеров, которые я видел, необходимо использовать более раннюю версию, потому что я не могу создать экземпляр 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 
} 

ответ

2

Я ненавижу, чтобы ответить на мой собственный вопрос, но здесь ...

Microsoft R Open 3.2.4 расширение распределения R устанавливает x64 файлов. Таким образом, запуск под ANY CPU вызовет сбой, потому что он выберет x86 (по умолчанию).

Под
Свойства проекта -> Build: в разделе "Общие"

  • Выберите x64 в качестве Platform Target

enter image description here

Смежные вопросы