Home
Products
Support
Blog
Resources
Company
NMath Stats User's Guide
TOC |  Previous |  Next |  Index

3.11 Logical Functions

The static If() method on class StatsFunctions creates an array of boolean values determined by applying a given logical function to the elements in a data set.

For example, suppose OnInterval01() is a method that returns true if a given numeric value is between 0 and 1:

public bool OnInterval01( double x )
{
  return ( ( x >= 0 ) && ( x <= 1 ) );
}

This code creates an array of boolean values by applying the criterion to a data set:

bool[] bArray = StatsFunctions.If( data, new 
  StatsFunctions.LogicalDoubleFunction( OnInterval01 ) );

As described in Section 2.7, the resultant boolean array could be used to create a Subset containing the indices of all true elements in the array. The subset could then be used to create a sub-frame from a DataFrame containing the rows or columns than meet the criterion.

An overload of If() creates a new data set by applying a logical function to the elements of another data set. Elements in the original data set that return true are set to a given true value in the new data set; elements that return false are not changed.

For instance, suppose GreaterThan100() is a method that returns true if a given numeric value is greater than 100. This code creates a new data in which all values in DoubleVector data that are greater than 100 are set to NaN:

DoubleVector data2 = StatsFunctions.If( data,
  new StatsFunctions.LogicalDoubleFunction( GreaterThan100 ),   
  Double.NaN );

You can also supply a false value, in which case elements in the original data set that return false are set to that value.

Static CountIf() and SumIf() methods are also provided on class StatsFunctions. See Section 3.3 for more information.

TOC |  Previous |  Next |  Index

Copyright © 2008 CenterSpace Software, LLC. All rights reserved.
All trademarks and registered trademarks mentioned on this web site are the property of their respective owners.
Contact Webmaster