groupby (:G)
语法
groupby(func, funcArgs, groupingCol)
或
funcArg func:G groupingCol
New in version 2.00.9.
或
func:G(funcArgs, groupingCol)
参数
func 是一个函数。
funcArgs 是函数func的参数。如果有多个参数,则用元组表示。
groupingCol 是分组变量。
groupingCol和funcArgs中的每个参数都是相同长度的向量。
对于第二种情况,func 表示的函数只能有一个参数。
详情
在每个分组中计算func(funcArgs)。每组的计算结果可以是标量,向量或字典,该高阶函数的输出结果是一个表,它的行数与分组数相等。
例子
$ sym=`IBM`IBM`IBM`MS`MS`MS$symbol;
$ price=172.12 170.32 175.25 26.46 31.45 29.43;
$ qty=5800 700 9000 6300 2100 5300;
$ trade_date=2013.05.08 2013.05.06 2013.05.07 2013.05.08 2013.05.06 2013.05.07;
$ groupby(avg, price, sym);
sym |
avg_price |
---|---|
IBM |
172.563333 |
MS |
29.113333 |
$ price avg :G sym;
sym |
avg_price |
---|---|
IBM |
172.563333 |
MS |
29.113333 |
$ groupby(wavg, [price, qty], sym);
// 计算每个股票标记数量加权后的平均价格
sym |
avg_price |
---|---|
IBM |
173.856129 |
MS |
28.373869 |