DolphinDB 中的 table 在高阶函数处理时,默认是按行处理(每一个是一个字典),如果要按列处理,可以用 values 函数转化成tuple,或者用 flip 函数转化成一个列名为 key 列数据为 value 的字典。
v = 1 2 3 each(*, t.values(), v) //return a matrix |
DolphinDB 中的 table 在高阶函数处理时,默认是按行处理(每一个是一个字典),如果要按列处理,可以用 values 函数转化成tuple,或者用 flip 函数转化成一个列名为 key 列数据为 value 的字典。
v = 1 2 3 each(*, t.values(), v) //return a matrix |
首先模拟生成向量和表格数据:
v = 1 2 3 t = table(1..100 as a, 1..100 as b, 1..100 as c)
将长度为3的向量乘到100行3列的表每一行,可以用以下方法实现:
方案一:使用byRow
result = byRow(mul{v}, matrix(t))
方案二:each+values
result = each(*, t.values(), v)
方案三:flip函数转换成字典
result = t.flip().mul(v).flip()
方案四:each+matrix
result = each(mul, v, matrix(t))}
性能测试
数据量:构建10w行3列的表格和一个长度为3的向量相乘
测试方案:通过timer函数统计单词计算的耗时
测试结果: