Q:对一列数据怎么求和、求平均、求标准差等
A:
方法1:通过sum函数来求取,此种方法,首先必须先取出该列作为一个一维数组,而且要保证原数组行下标为从0开始的连续的数字。e.g.
a:=ones(5,5);
tmp:=sselect [1] from a end; //或者tmp:=a[:,1];
return sum(tmp);
方法2:直接通过类sql语法中的聚集函数来实现。
a:=ones(5,5);
return vselect sumof([1]) from a end;
下面,对不同数据结构的统计函数进行统计:
统计功能 | 一维连续数组 | 二维数组某列 | Select时或StatByColumn | 对应Excel |
最大值 | MaxValue | MaxValueByColumn | MaxOf | Max |
最小值 | MinValue | MinValueByColumn | MinOf | Min |
平均值 | Mean | AverageValueByColumn | AvgOf | Average |
求和 | Sum | SumValueByColumn | SumOf | Sum |
中位数 | Median | MedianByColumn | MedianOf | Median |
众数 | | | ModeOf | Mode |
样本标准差 | StdDev | StdDevByColumn | StDevOf | Stdev |
总体标准差 | PopnStdDev | | | Stdevp |
样本偏差 | Variance | VarByColumn | VarOf | Var |
整体偏差 | PopnVariance | | VarPOf | Varp |
总体偏差 | TotalVariance | DevsqByColumn | DevSqOf | |
平方和的平方根 | Norm | | NormOf | |
与其均值的绝对偏差的平均值 | | AveDevByColumn | AveDevOf | Avedev |
百分位位置的数 | | PercentValueByField | PercentTileOf | Percentile |
数在百分位位置 | | | PercentRankOf | Percentrank |
统计分布 | | | FrequencyOf | Frequency |
某值是否存在 | RecordExist(t,v) | RecordExist2(t,fname,v) | Ifnil(vselect v from t end;) | Lookup |