public async Task <bool> InitialiseAsync() { //try //{ //logger.Log("Connecting to R...", Category.Info, Priority.None); var rHostSession = RHostSession.Create("TestApp"); //rHostSession.Connected += RHostSession_Connected; //rHostSession.Disconnected += RHostSession_Disconnected; rOperations = new ROperations(rHostSession); await rOperations.StartHostAsync(rHostSessionCallback); //await rOperations.ExecuteAsync("library(" + string.Format("\"{0}\"", "R.devices") + ")"); //await rOperations.ExecuteAsync("library(" + string.Format("\"{0}\"", "ggplot2") + ")"); await rOperations.ExecuteAndOutputAsync("setwd(" + ConvertPathToR(WindowsDirectory) + ")"); //logger.Log("Connected to R", Category.Info, Priority.None); //} //catch (Exception ex) //{ // //logger.Log("Failed to connect to R: " +ex.Message, Category.Exception, Priority.High); // return false; //} return(true); }
static void Main(string[] args) { // Init R session IRHostSession session = RHostSession.Create("Test"); Task sessionStartTask = session.StartHostAsync(new RHostSessionCallback()); sessionStartTask.Wait(); // Simple output from console Console.WriteLine("Arbitrary R code:"); var result = session.ExecuteAndOutputAsync("Sys.info()"); result.Wait(); Console.WriteLine(result.Result.Output); // Create R DataFrame List <string> colNames = new List <string>(new string[] { "c1", "c2" }); List <string> rowNames = new List <string>(new string[] { "1", "2", "3", "10" }); var xx = new object[] { new object[] { 1, 3, 43, 54 }, new object[] { "a", "c", "a", "d" } }; var list = new List <IReadOnlyCollection <object> >(); foreach (object o in xx) { list.Add(o as object[]); } DataFrame df = new DataFrame(rowNames, colNames, list.AsReadOnly()); var dtc = session.CreateDataFrameAsync("data", df); dtc.Wait(); // Print data frame in R session result = session.ExecuteAndOutputAsync("print(data)"); result.Wait(); Console.WriteLine("\nR data frame:"); Console.WriteLine(result.Result.Output); var resultList = session.GetListAsync("list(mean(data$c1), 111)"); Console.WriteLine("\nList elements returned from R to C#:"); Console.WriteLine(Convert.ToDouble(resultList.Result[0]) * 100); Console.WriteLine(resultList.Result[1]); session.StopHostAsync(); Console.ReadLine(); }
public RSessionApiTest() { _callback = Substitute.For <IRHostSessionCallback>(); _session = RHostSession.Create(nameof(RSessionApiTest)); }
private void CreateHostSession() { _session = RHostSession.Create("Test"); _sessionStartTask = _session.StartHostAsync(new RHostSessionCallback()); }
public RHostClientCaller(string scriptPath) { this.scriptPath = scriptPath; session = RHostSession.Create("Test"); task = session.StartHostAsync(new RHostSessionCallback()); }
private RSession(string sessionName) { Session = RHostSession.Create(sessionName); }