Working with Data: Numeric Data: DataRange chapter shows how to construct a data range object by column/row index, then get the raw data into a vector.
Often we want to do statistics on the selected data in a worksheet, i.e. one column, one row, or an entire worksheet. TheThe ocmath_basic_summary_stats function is used to compute basic descriptive statistics, such as total number, mean, standard deviation, and skewness, for raw data. For more details, refer to Origin C help. The following Origin C code calculates and outputs the number of points, the mean, and the standard error of mean on the data in the vector object named vData.
int N; double Mean, SE; ocmath_basic_summary_stats(vData.GetSize(), vData, &N, &Mean, NULL, &SE); printf("N=%d\nMean=%g\nSE=%g\n", N, Mean, SE);
The ocmath_frequency_count function is used to calculate the frequency count, according to the options in the FreqCountOptions structure.
// Source data to do frequency count vector vData = {0.11, 0.39, 0.43, 0.54, 0.68, 0.71, 0.86}; // Set options, including bin size, from, to and border settings. int nBinSize = 5; FreqCountOptions fcoOptions; fcoOptions.FromMin = 0; fcoOptions.ToMax = 1; fcoOptions.StepSize = nBinSize; fcoOptions.IncludeLTMin = 0; fcoOptions.IncludeGEMax = 0; vector vBinCenters(nBinSize); vector vAbsoluteCounts(nBinSize); vector vCumulativeCounts(nBinSize); int nOption = FC_NUMINTERVALS; // to extend last bin if not a full bin int nRet = ocmath_frequency_count( vData, vData.GetSize(), &fcoOptions, vBinCenters, nBinSize, vAbsoluteCounts, nBinSize, vCumulativeCounts, nBinSize, nOption); if( STATS_NO_ERROR == nRet ) out_str("Done");
ocu_discrete_frequencies for text data, and the other is ocmath_discrete_frequencies for numeric data. Also, there are two functions to calculate frequency count on 2 dimensions: ocmath_2d_binning_stats and ocmath_2d_binning.
In addition, there are two functions to calculate frequency count for discrete/categorical data. One isThe ocmath_corr_coeff function is used to calculate the Pearson rank, Spearman rank and Kendall rank correlation coefficients.
matrix mData = {{10,12,13,11}, {13,10,11,12}, {9,12,10,11}}; int nRows = mData.GetNumRows(); int nCols = mData.GetNumCols(); matrix mPeaCorr(nCols, nCols); matrix mPeaSig(nCols, nCols); matrix mSpeCorr(nCols, nCols); matrix mSpeSig(nCols, nCols); matrix mKenCorr(nCols, nCols); matrix mKenSig(nCols, nCols); if(STATS_NO_ERROR == ocmath_corr_coeff(nRows, nCols, mData, mPeaCorr, mPeaSig, mSpeCorr, mSpeSig, mKenCorr, mKenSig)) { out_str("Done"); }
Use the *ocmath_shapiro_wilk_test function to perform a Shapiro-Wilk Normality Test. Use the *ocmath_lilliefors_test function to perform a Lilliefors Normality Test. Use the *ocmath_kolmogorov_smirnov_test function to perform a Kolmogorov-Smirnov Normality Test.
vector vTestData = {0.11, 0.39, 0.43, 0.54, 0.68, 0.71, 0.86}; NormTestResults SWRes; if( STATS_NO_ERROR == ocmath_shapiro_wilk_test(vTestData.GetSize(), vTestData, &SWRes, 1) ) { printf("DOF=%d, TestStat=%g, Prob=%g\n", SWRes.DOF, SWRes.TestStat, SWRes.Prob); }