1

以下代码适用:

static void Main(string[] args)
{
 REngine.SetEnvironmentVariables();
 REngine engine = REngine.GetInstance();
 // 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);

 // you should always dispose of the REngine properly.
 // After disposing of the engine, you cannot reinitialize nor reuse it
 engine.Dispose();
}

我想在重复的过程中使用引擎,但是一旦使用不能重复使用。有什么想法可以做到这一点吗?第一次编译,但在 engine.Initialize() 处第二次编译时挂起。

谢谢!

4

0 回答 0