The same data used in SortEx2 is used in this example. It is a 10 x 3 matrix using Columns 0 and 1 as keys. There are two missing values (NaNs) in the keys. NaN is displayed as a ?. Table MultiWay determines the number of groups of different observations.
using System;
using Imsl.Stat;
using Imsl.Math;
public class TableMultiWayEx1
{
public static void Main(String[] args)
{
int nKeys = 2;
double[,] x = {
{1.0, 1.0, 1.0}, {2.0, 1.0, 2.0},
{1.0, 1.0, 3.0}, {1.0, 1.0, 4.0},
{2.0, 2.0, 5.0}, {1.0, 2.0, 6.0},
{1.0, 2.0, 7.0}, {1.0, 1.0, 8.0},
{2.0, 2.0, 9.0}, {1.0, 1.0, 9.0}};
x[4,1] = Double.NaN;
x[6,0] = Double.NaN;
PrintMatrix pm = new PrintMatrix("The Input Array");
PrintMatrixFormat mf = new PrintMatrixFormat();
mf.SetNoRowLabels();
mf.SetNoColumnLabels();
// Print the array
pm.Print(mf, x);
Console.Out.WriteLine();
TableMultiWay tbl = new TableMultiWay(x, nKeys);
int[] ngroups = tbl.GetGroups();
Console.Out.WriteLine(" ngroups");
for (int i = 0; i < ngroups.Length; i++)
Console.Out.Write(ngroups[i] + " ");
}
}
The Input Array
1 1 1
2 1 2
1 1 3
1 1 4
2 NaN 5
1 2 6
NaN 2 7
1 1 8
2 2 9
1 1 9
ngroups
5 1 1 1
Link to C# source.