■ T 테스트 통계를 사용하는 방법을 보여준다.
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
using System; using System.Linq; using RDotNet; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { REngine.SetEnvironmentVariables(); REngine rEngine = REngine.GetInstance(); // REngine이 명시적인 초기화를 요구한다. rEngine.Initialize(); // 닷넷 프레임워크 배열을 R 벡터로 변환한다. NumericVector numericVector1 = rEngine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97, 30.01, 29.99 }); rEngine.SetSymbol("group1", numericVector1); // R 스크립트에서 직접 파싱한다. NumericVector numericVector2 = rEngine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric(); // 평균의 차이를 테스트하고 P-Value를 구한다. GenericVector genericVector = rEngine.Evaluate("t.test(group1, group2)").AsList(); double pValue = genericVector["p.value"].AsNumeric().First(); Console.WriteLine("Group1 : [{0}]", string.Join(", ", numericVector1)); Console.WriteLine("Group2 : [{0}]", string.Join(", ", numericVector2)); Console.WriteLine(); Console.WriteLine("P-value = {0:0.000}", pValue); // 항상 REngine을 적절하게 해제해야 한다. // 엔진 해제 후, 다시 초기화하거나 재사용할 수 없다. rEngine.Dispose(); } #endregion } } |