Quantcast
Channel: R.NET
Viewing all articles
Browse latest Browse all 1634

New Post: R Engine Reuse (re-initialize)

$
0
0
Hi,
I want to run this example code in a button, and copied to all of them and paste into buttonClick function. When I clicked button first time codes work perfectly , but when click to button secondly , it throws an parse error at this line : GenericVector testResult = engine.Evaluate("t.test(group1, group2)").AsList();

I tried a lot of code piece in a buttonclick function. All of them work perfect in first time but doesn't work second time. I think it ise about reusing engine with initialize funciton!?
How can I solve this problem?
THX.


example code is :

// Set the folder in which R.dll locates.
  // See Documentation for automatic search of installation path.
  // This example set PATH environment variable for 64-bit process and R x64 2.15.1 on Windows.
  // You should appropriately set the correct location for other cases.
  // Refer to the Documentation page.
  var envPath = Environment.GetEnvironmentVariable("PATH");
  var rBinPath = @"C:\Program Files\R\R-2.15.1\bin\x64"; 
  Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);

  // For Linux or Mac OS, R_HOME environment variable may be needed.
  //Environment.SetEnvironmentVariable("R_HOME", "/usr/lib/R")

  using (REngine engine = REngine.CreateInstance("RDotNet"))
  {
     // From v1.5, REngine requires explicit initialization.
     // You can set some parameters.
     engine.Initialize();

     // .NET Framework array to R vector.
     NumericVector group1 = engine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97, 30.01, 29.99 });
     engine.SetSymbol("group1", group1);
     // Direct parsing from R script.
     NumericVector group2 = engine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric();

     // Test difference of mean and get the P-value.
     GenericVector testResult = engine.Evaluate("t.test(group1, group2)").AsList();
     double p = testResult["p.value"].AsNumeric().First();

     Console.WriteLine("Group1: [{0}]", string.Join(", ", group1));
     Console.WriteLine("Group2: [{0}]", string.Join(", ", group2));
     Console.WriteLine("P-value = {0:0.000}", p);

Viewing all articles
Browse latest Browse all 1634

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>