2.1.17.8.21.3 Data_sort
Description
Function to sort a data set inplace.
Syntax
BOOL Data_sort( Dataset * pdsData, BOOL bDescending = FALSE, BOOL bMissingAsMin = FALSE )
Parameters
- pdsData
- [modify] Pointer to dataset
- bDescending
- [input] If TRUE sort in descending order otherwise sort in ascending order (default)
- bMissingAsMin
- [input] If TRUE evaluate Origin missing values as smallest value otherwise as largest value (default)
Return
If successful returns TRUE and a sorted dataset otherwise returns FALSE.
Examples
EX1
// This is a self contained sample program for the function Data_sort.
// It demonstrates a simple call of the function, and shows how to
// sort a dataset by replacing the input dataset with the sorted one.
// The sample data is created at the beginning of the program.
// To run the program, enter the following command in the Script window:
// Data_sort_ex1
// This will print a message like following:
// Applying Data_sort on Data2_A succedded. (updated the dataset directly)
// Simple call with defaults: Ascending & Missing as Largest
//
void Data_sort_ex1()
{
BOOL success;
Worksheet wks;
wks.Create();
String wksName=wks.GetPage().GetName();
Dataset myInDs(wks,0);
String strInDsName = myInDs.GetName();
Dataset myOrg(wks,1); // Back up dataset of original
wks.Columns(1).SetName("Original");
//******* Create sample data *****************
myInDs.SetSize(7);
myOrg.SetSize(7);
myInDs[0]=0.097; myOrg[0]=myInDs[0];
myInDs[1]=0.41256; myOrg[1]=myInDs[1];
myInDs[2]=NANUM; myOrg[2]=myInDs[2];
myInDs[3]=0.47304; myOrg[3]=myInDs[3];
myInDs[4]=NANUM; myOrg[4]=myInDs[4];
myInDs[5]=0.64529; myOrg[5]=myInDs[5];
myInDs[6]=0.44514; myOrg[6]=myInDs[6];
//******** End of Sample Data Creation *******
success = Data_sort(&myInDs); // Demonstration of Data_sort
if(success)
printf("Applying Data_sort on %s succedded. (updated the dataset directly)\n" " Simple call with defaults: Ascending & Missing as Largest\n",strInDsName);
else
printf("Error: Data_sort failed.\n");
}
EX2
// This is a self contained sample program for the function Data_sort.
// It demonstrates the function call with its parameters, and shows how
// to sort a dataset without modifying itself by sorting a copied
// temporary dataset.
// The sample data is created at the beginning of the program.
// To run the program, enter the following command in the Script window:
// Data_sort_ex2
// This will print a message like following:
// Applying Data_sort on Data4_A succedded. (result in the temporary dataset)
// Function call with specifications: Ascending Flag=0 & Missing_as_Largest Flag=1
// Number of Missing Values = 2
//
void Data_sort_ex2()
{
int i,iMissing;
BOOL success;
Worksheet wks;
wks.Create();
Dataset myInDs(wks,0);
String strInDsName = myInDs.GetName();
//******* Create sample data *****************
myInDs.SetSize(7);
myInDs[0]=0.097;
myInDs[1]=0.41256;
myInDs[2]=NANUM;
myInDs[3]=0.47304;
myInDs[4]=NANUM;
myInDs[5]=0.64529;
myInDs[6]=0.44514;
BOOL ASCENDING_FLAG = FALSE;
BOOL NANUM_AS_LARGEST_FLAG = TRUE;
//******** End of Sample Data Creation *******
Dataset mySortDs(myInDs); // Create a temporary copy of original data
mySortDs.SetSize(myInDs.GetSize());
success = Data_sort(&mySortDs,ASCENDING_FLAG,NANUM_AS_LARGEST_FLAG); // Demonstration of Data_sort
if(success)
{
printf("Applying Data_sort on %s succedded. (result in the temporary dataset)\n" " Function call with specifications: Ascending Flag=%d & Missing_as_Largest Flag=%d\n",
strInDsName,ASCENDING_FLAG,NANUM_AS_LARGEST_FLAG);
iMissing=0;
for(i=0; i<7; i++) {
if(mySortDs[i]==NANUM) iMissing++;
else break; // NANUMs grouped at top, and break immediately when found not NANUM.
}
printf(" Number of Missing Values = %d\n",iMissing);
}
else
printf("Error: Data_sort failed.\n");
}
Remark
Function to sort a data set inplace.
See Also
Header to Include
origin.h
Reference
|