2.2.4.9.12 DataRange::GetFactorsValuesGetFactorsValues
Description
Get all the factor values as a string array.
Syntax
int GetFactorsValues( DWORD dwRules, int nIndex = 0, vector<string> * pstrFactors = NULL )
Parameters
- dwRules
- [input] the rules for data extraction, to be taken out of the DRR_ enumeration.
- nIndex
- [input] the data index whose factors values combination is sought. Not used if pstrFactors us NULL.
- pstrFactors
- [output] it receives the factors values as strings.
Return
The total number of factors. If *pstrFactors supplied, it equals the size of *pstrFactors.
Examples
EX1
// This example assumes 1 or more columns of main data, 1 or more columns of factor or grouping data, and 1 column of weight data.
// Get the Factor values of the main data and print out the factor, min, max and mean values of the main data in the datarange.
void DataRange_GetFactorsValues_Ex1(int nXColStart = 0, int nXColEnd = 1, int nFColStart = 2, int nFColEnd = 3, int nWCol = 4)
{
Worksheet wks = Project.ActiveLayer();
if( wks )
{
DWORD dwRules = DRR_GET_MISSING | DRR_BAD_WEIGHT_TREATMENT;
DataRange dr;
dr.Add("X", wks, 0, nXColStart, -1, nXColEnd); // Main data
dr.Add("F", wks, 0, nFColStart, -1, nFColEnd); // Factor data
dr.Add("W", wks, 0, nWCol, -1, nWCol); // Weight data
int nNumData = dr.GetNumData(dwRules); //Get the number of data ranges according to the rules dwRules.
vector<string> vFactors;
vector vX, vW;
double dN, dMean, dMax, dMin;
for( int ii = 0; ii < nNumData; ii++ )
{
int nCol = dr.GetData(dwRules, ii, NULL, NULL, &vX, NULL, NULL, NULL, &vW);
int nNumFactors = dr.GetFactorsValues(dwRules, ii, &vFactors);
if ( 0 <= nCol )
{
vX *= vW;
dN = vX.GetSize();
vX.Sum(dMean);
dMean /= dN;
vX.GetMinMax(dMin, dMax);
printf("\nColumn = %s, Factor1 = %s, Factor2 = %s\nMean = %g\nMinimum = %g\nMaximum = %g\n",
wks.Columns(nCol).GetName(), vFactors[0], vFactors[1], dMean, dMin, dMax);
}
}
}
}
Remark
See Also
DataRange::GetNumData, DataRange::GetNumRanges, DataRange::GetData
Header to Include
origin.h
|