Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 public RSessionApiTest()
 {
     _callback = Substitute.For <IRHostSessionCallback>();
     _session  = RHostSession.Create(nameof(RSessionApiTest));
 }
Esempio n. 4
0
 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());
 }
Esempio n. 6
0
 private RSession(string sessionName)
 {
     Session = RHostSession.Create(sessionName);
 }