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.
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);