2015-01-13 5 views
0

В одной руке у меня сформировалась пластинчатая форма, сформированная в R, состоящая из множества пользовательских функций, используемых для создания отчета, используя в качестве входных матриц и аргументов.Как вызвать определенную пользователем функцию (в файле .rdata) из C# R.net?

В другом я управляю своим потоком данных через платформу c#.

То, что я хочу сделать, это зовет меня R Платформу от c#: вызов функции, определенной в файле Rdata в мой c# код (который обрабатывать все мои матрицы данных).

Я знаком с RdotNet и использую его для вызова определенных пользователем функций, но это функции, определенные в моем самом коде c#, в то время как мне нужно вызвать функции в файле Rdata.

Заранее спасибо.

+0

Пожалуйста, смотрите [Можно ли вызвать определенный пользователем (пользовательские) функции R от внутри C#?] (http://stackoverflow.com/questions/14789417/is-it-possible-to-call-a-user-defined-custom-r-function-from-within-c) – iled

ответ

2

Функции R, вызываемые из R.NET, не ограничены функциями, созданными из строк в .NET. Если определить и сохранить определение функции в R:

f <- function() {"Hello World"} 
save(f, file='f.RData') 

Тогда в C# вы просто сделать что-то вроде

static void stackoverflow_27924923_2752565 (REngine engine) 
{ 
    engine.Evaluate ("load('~/f.RData')"); 
    var s = engine.Evaluate ("f()").AsCharacter()[0]; 
    Console.WriteLine(s); 
} 
+0

Спасибо, это точно что мне нужно. – ylnor