NA
NA

性别: 注册于 2022-10-21

向TA求助
20金币数
190 经验值
0个粉丝
主页被访问 227 次

最近动态

2024-01-30 17:07 回答问题

通过 rowNo(col)%N 可以给数据等间隔分 N 组,再通过 context by 分组计算 moving。 t = table(1..10 as id, 1..10 as v) select id, moving(sum, v, 3) from t context by rowNo(v) % 2 直接 context by 的输出结果会按照分组依次输出,如果需要保持顺序和输入一致,可以用 HINT_KEEPORDER 关键字 t = table(1..10 as id, 1..10 as v

2024-01-30 17:00 回答问题

假设有两个 100000 行 100 列的矩阵 setRandomSeed(9) m1 = rand(50.0, 10000000)$100000:100 m2 = rand(1..10, 10000000)$100000:100 需要逐行进行以下计算,最后返回一个 100000 行 100 列的矩阵 def foo(m1Row, m2Row):contextby(demean, m1Row, m2Row) 可以通过以下三种方式实现: 方案一:byRow + 矩阵拼接 byRow 可以对矩阵逐行

2024-01-30 16:26 回答问题

假设有一个表如下: 现需要计算指标 position,公式如下: 则可以用以下方式实现 方案一:accumulate 方案二:for 循环+JIT 性能测试 测试数据:1000000*4 【38 MB】的内存表 数据构造脚本

2023-04-26 09:39 回答问题

如果是 DOUBLE / INT 这种数值类型的列,可以用 toArray 函数把每个组的数据组成一个 array vector 进行存储,比如 tmp = table(rand(10, 10) as stock_id, 1..10 as amount)select toArray(amount) as amount from tmp group by stock_id 如果是 STRING 这种字符串类型的列,可以指定分隔符把数据拼接成一个 string,使用时,用 split 再拆分一下,比如

2022-12-15 15:40 回答问题

报错原因: 因为第一种直接从 O_510050 的表里取 close 这一列。left join 是跟左表对齐的,左右表的长度不一样,所以报错长度不一致。 第二种是从 left join 的结果表里取 O_510050 的 close 列。 解决方案: TB = sql(select=(each(sqlCol, TB.colNames()) join sqlCol("close")), from=lj(TB, O_510050, `datetime)).eval() 备注:上述写法需要表 TB 里

2022-12-15 15:16 回答问题

常见原因: ① 函数名输错了 解决方法:检查函数名 ② 更新的 module 没有同步到 server 解决方法:右击 module 文件,选择 "Synchronize module to server" ③ 同步过去了, Session 没有更新。 解决方案:断开当前 session,重新启一个。 具体的,上图位置换个节点,再重新选回来就好了

2022-11-25 11:06 回答问题

这个应该不是大小比较的问题,因为 2680 > 2679.999999999999545 的结果是 true。 应该是 GUI 显示的数据精度的问题。 GUI 默认的应该是显示小数点后 4 位。所以,实际计算获得的因子值可能是 2679.99999 ,在 GUI 显示就是 2680。 解决方案: 首先,可以通过调整 GUI 显示的小数位数,比如调成 16,来查看实际的因子值,看是否是上述原因导致。 如果是上述问题,又需要 factorValue 的数据成为 2680.0,则可以通过

2022-11-18 09:54 回答问题

函数 isort 的输入可以是多个向量 a = [1, 1, 3, 2] b = [3, 2, 6, 8] c = fixedLengthArrayVector(a, b) c[isort([a,b])] 输出: offset      0        1        2        3 0        [1,2]    [1,3]     [2,8]    [3,6] 代码: b[isort([a,b])] 输出 offset 0 1 2 3 0 2 3 8 6

2022-11-08 16:27 回答问题

可以先把空向量过滤掉,再用flatten x = [[1,2,3], [], [4], [5,6]]flatten(x[flatten(x[,0]!=NULL)])

2022-10-28 11:05 回答问题

可以用 result[1 9 10] 取指定 index 的列 用 result[1 9 10, 0..(result.cols()-1)] 取指定 index 的行 用 result[1 9 10, 1 9 10] 取指定的行列 如果是 2.00.8 版本以上,可以用函数 loc 直接根据矩阵的行列名进行取数 loc — DolphinDB 2.0 文档