行计算系列(row 系列)

DolphinDB 中,绝大部分计算函数是基于向量、矩阵或表的一列进行的。若需要逐行计算,普通函数无法满足要求。为此,DolphinDB 设计了row 系列函数,可以满足用户逐行进行计算的需求。

row 系列函数介绍

row 系列函数对应的高阶函数 byRow

byRow(func, X, [Y])

byRow (:H)

内置的 row 系列函数的通用参数模板如下:

模板一:单目函数

rowFunc(args…)

单目函数模板(2.00.10 版本首发)

rowFunc(X)

模板二:双目函数(2.00.4版本首发):

rowFunc(X, Y)

参数(单目函数)

  • args 可以是单个标量/矩阵、一或多个向量/向量元组/表的组合。输入的各参数的行数(向量的长度/元组中每行向量的长度/表的行数)必须相同。
    注: 矩阵逐行计算,返回一个长度和行数相同的向量,暂不支持输入多个矩阵进行计算。
  • X 是矩阵/数组向量/列式元组/由等长向量组成的元组。其中,如下单目函数不支持输入 由等长向量组成的元组:rowRank, rowDenseRank, rowMove, rowNext, rowPrev。

参数(双目函数)

XY 是维度相同的矩阵/数值型向量/数组向量或由等长向量组成的元组。

如下二元函数支持同时接收列式元组作为入参:rowWavg, rowCorr, rowCovar, rowBeta, and rowWsum, rowCumwsum

row系列函数一览

row 系列函数如下:

单目函数:

双目函数:

特殊单目函数:

特殊双目函数:

X 支持输入矩阵或数组向量,Y 支持输入向量或数组向量

计算规则

对于不同类型的组合计算的规则,可以参考上图,对应下例。

vec = [1,2,3]
vec_tuple = [[3,4,5],[4,5,6]]
tb = table(7 8 9 as id, 8 9 10 as code)
print rowSum(vec, vec_tuple, tb)
// output: [23, 28, 33]

矩阵计算的用例如下:

m = matrix(4 2 1 3 5 8, 1 2 5 9 0 1, 3 6 3 2 1 5)
print rowSum(m)
// output: [8, 10, 9, 14, 6, 14]