NA
NA

性别: 注册于 2022-10-21

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

11 个回答

0 赞同

如果使用 moving 等间隔进行计算

通过 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...

回答于 2024-01-30 17:07

1 赞同

如何实现两个矩阵对应逐行计算

假设有两个 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 + 矩阵拼接 byRo...

回答于 2024-01-30 17:00

0 赞同

基于历史结果计算的 SQL 语句怎么写

假设有一个表如下: time = 2023.01.01T09:00:00.000 + 1..9 code = take(`a, 9) ov95 = 1 1 1 0 0 0 0 0 0 ov70 = 0 0 0 0 0 0 1 1 1 t = table(time, code, ov95, ov70) 现需要计算指标 position,公式如下: 则可以用以下方式实现 方案一:accumulate res = select *, accumulate(def(pos, ov95, ov70):iif(pos==0&...

回答于 2024-01-30 16:26

0 赞同

如何 groupby 之后把某一列非 groupby 字段拼接起来或者放到一个...

如果是 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,...

回答于 2023-04-26 09:39

0 赞同

两个表left join on, 怎么实现通过字符串指定输出右表的列

报错原因: 因为第一种直接从 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, `da...

回答于 2022-12-15 15:40

0 赞同

自定义模块可以导入,但是提示函数无法识别

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

回答于 2022-12-15 15:16

0 赞同

通过浮点数比较筛选表中数据时结果不对(选>2679.99999999999954...

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

回答于 2022-11-25 11:06

0 赞同

如何实现像python sort这样的对元组列表的排序

函数 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-18 09:54

0 赞同

如何将多个向量合并为一个大向量?向量里有空向量,直接用flatte...

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

回答于 2022-11-08 16:27

0 赞同

怎么取矩阵的特定的行和列的数据(index 不连续)

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

回答于 2022-10-28 11:05