Search code examples
r.net

how can I create Named List Members object in R.net?


How can I create "Named List Members" in R.NET? The R code looks like this:

odpar <- list(mean = c(-1.5, 0, 1.5), var = c(0.5, 0.6, 0.8)) 

Solution

  • You can do something like

    var engine = this.Engine;
    var list = new GenericVector(engine, 2);
    // odpar <- list(mean = c(-1.5, 0, 1.5), var = c(0.5, 0.6, 0.8)) 
    list[0] = engine.CreateNumericVector(new[] { -1.5, 0, 1.5 });
    list[1] = engine.CreateNumericVector(new[] { 0.5, 0.6, 0.8 });
    list.SetNames("mean", "var");
    engine.SetSymbol("TestListSetNames", list);
    var listNames = engine.Evaluate("names(TestListSetNames)").AsCharacter().ToArray();
    Assert.AreEqual("mean", listNames[0]);
    Assert.AreEqual("var", listNames[1]);
    

    Or, if your list can be created as a data frame (which is closely related to lists), you can follow the examples provided in links at this post, creating-a-data-frame-using-r-net