C# One Way Anova Example

← All NMath Code Examples

 

using System;
using System.Windows.Forms;
using System.Data;
using System.Globalization;

using CenterSpace.NMath.Core;

namespace CenterSpace.NMath.Examples.CSharp
{
  /// <summary>
  /// A .NET example in C# showing how use class OneWayAnova to perform a simple one-way
  /// ANOVA and display the results.
  /// </summary>
  class OneWayAnovaDisplayExample : Form
  {
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.DataGrid dataGrid1;

    static void Main()
    {
      Application.Run( new OneWayAnovaDisplayExample() );
    }

    #region Windows Form Designer generated code

    private void InitializeComponent()
    {
      this.dataGrid1 = new System.Windows.Forms.DataGrid();
      this.label1 = new System.Windows.Forms.Label();
      ( (System.ComponentModel.ISupportInitialize) ( this.dataGrid1 ) ).BeginInit();
      this.SuspendLayout();
      // 
      // dataGrid1
      // 
      this.dataGrid1.BackgroundColor = System.Drawing.Color.White;
      this.dataGrid1.CaptionVisible = false;
      this.dataGrid1.DataMember = "";
      this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
      this.dataGrid1.Location = new System.Drawing.Point( 24, 64 );
      this.dataGrid1.Name = "dataGrid1";
      this.dataGrid1.PreferredColumnWidth = 110;
      this.dataGrid1.ReadOnly = true;
      this.dataGrid1.RowHeadersVisible = false;
      this.dataGrid1.Size = new System.Drawing.Size( 664, 80 );
      this.dataGrid1.TabIndex = 0;
      // 
      // label1
      // 
      this.label1.Font = new System.Drawing.Font( "Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ( (System.Byte) ( 0 ) ) );
      this.label1.Location = new System.Drawing.Point( 184, 24 );
      this.label1.Name = "label1";
      this.label1.Size = new System.Drawing.Size( 280, 32 );
      this.label1.TabIndex = 1;
      this.label1.Text = "One Way Anova Example";
      // 
      // OneWayAnovaDisplayExample
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 );
      this.ClientSize = new System.Drawing.Size( 714, 168 );
      this.Controls.AddRange( new System.Windows.Forms.Control[] {
                                                                  this.label1,
                                                                  this.dataGrid1} );
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
      this.Name = "OneWayAnovaDisplayExample";
      this.Text = "One Way Anova Example";
      ( (System.ComponentModel.ISupportInitialize) ( this.dataGrid1 ) ).EndInit();
      this.ResumeLayout( false );

    }

    #endregion

    public OneWayAnovaDisplayExample()
    {
      InitializeComponent();

      // Create the data to analyze. Class OneWayAnova will accept data in
      // several formats. The one below uses an array of DoubleVectors. Each
      // vector in the array contains the data for a group.
      var table = new DoubleVector[5];

      table[0] = new DoubleVector( "[24 15 21 27 33 23]" );
      table[1] = new DoubleVector( "[14 7 12 17 14 16]" );
      table[2] = new DoubleVector( "[11 9 7 13 12 18]" );
      table[3] = new DoubleVector( "[7 7 4 7 12 18]" );
      table[4] = new DoubleVector( "[19 24 19 15 10 20]" );

      // Create the one-way ANOVA
      var owa = new OneWayAnova( table );

      // The AnovaTable property is a DataFrame instance that contains
      // a traditional ANOVA table. Use the ToDataTable() method of
      // the DataFrame to create a ADO DataTable.
      DataTable dt = owa.AnovaTable.ToDataTable();

      // Set the grids DataSource property to the DataTable just created.
      this.dataGrid1.DataSource = dt;

    }  // Main

  }  // class

}  // namespace


← All NMath Code Examples
Top