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 |