AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[kdb](coding)

Martin Hope
kka
Asked: 2024-12-18 22:58:04 +0800 CST

KDB表更新语句

  • 5

我有以下测试表:

data:([]isin:`abc`;cusip:``jkl;sedol:`mno`)

我需要更新和data列instrumentID,instrumentIDType优先级如下:isin,,cusip。sedol

如果isin为空,我们使用cusip,如果cusip为空,我们使用sedol,但我还需要更新instrumentIDType我使用的对应项。有没有比下面更好的方法?

data:update instrumentID:isin, instrumentIDType:`ISIN from data;
data:update instrumentID:cusip, instrumentIDType:`CUSIP from data where null isin;
data:update instrumentID:sedol, instrumentIDType:`SEDOL from data where null instrumentID;
data:update instrumentID:ticker, instrumentIDType:`TICKER from data where null instrumentID;
kdb
  • 1 个回答
  • 35 Views
Martin Hope
bashprofile84
Asked: 2024-12-14 20:23:53 +0800 CST

如何在 kdb/q 中比较多列并使用布尔逻辑更新新列?

  • 5

比较三列中的数字,然后根据布尔检查的结果创建一个新列。

id    col1     col2       col3         col4                    
---------------------------------------------

update checkCol:$[(exec col1 from table)~(exec col2 from table1)~(exec col3 from table2);1;0] from table

我知道上面的代码行不通,但它很好地说明了我想要实现的目标。除了标准更新语句之外,还有其他更好的方法吗?

q)tb:([] id:1 2 3 4; num1: 20 22 24 26; num2: 21 22 24 27; num3: 20 22 24 28)
q)tb
id num1 num2 num3
-----------------
1  20   21   20  
2  22   22   22  
3  24   24   24  
4  26   27   28  
q)n1:exec num1 from tb
q)n2:exec num2 from tb
q)n3:exec num3 from tb
q){$[y~x;1;0]}'[n1;n2]
0 1 1 0

添加第三列会导致问题

kdb
  • 2 个回答
  • 38 Views
Martin Hope
marital_weeping
Asked: 2024-12-12 09:00:40 +0800 CST

在 kdb+ 中枚举连续的

  • 6

给定一个由 0 和 1 组成的列表,假设l: 0 0 1 1 1 0 0 1 1我想得到一个以 1 开头的序列,每个连续的 1 集都是如此。因此所需的输出应该是l: 0 0 1 2 3 0 0 1 2。如何在 kdb+ 中实现这一点?

kdb
  • 2 个回答
  • 65 Views
Martin Hope
wildcat
Asked: 2024-12-01 04:42:18 +0800 CST

我如何关闭 kdb/Q 中的变量?

  • 5

考虑以下将列表中的每个元素加 1 的函数。

f : {{x + 1} each x}
f[(1;2;3)]

2 3 4

但是,以下函数不起作用——我假设incr后一个表达式中的标识符未绑定。

f : {incr : 1; {x + incr} each x}
f[(1;2;3)]

'incr
  [3]  f@:{x + incr}

我如何在 kdb/q 中表达类似以下内容?

let f lst = 
  let incr = 1 in
  List.map (fun x -> x + incr) lst
kdb
  • 1 个回答
  • 29 Views
Martin Hope
kgf3JfUtW
Asked: 2024-11-29 12:10:12 +0800 CST

(计数 1 2 3,)的构图类型是什么

  • 5

我理解(count 1 2 3,)这是一种组合,因为我看到它的类型是 105。

q)type(count 5 6,)
105h

最初我以为这是一个隐式组合的例子,它

将一个或多个一元值与更高等级的值组合起来

我认为价值观是

  1. 一元:count
  2. 一元:1 2 3
  3. 二进制:(,连接)

但是,我认为这并不正确,因为,(连接运算符)的等级为 2,但组合的结果只有等级 1。这与我读到的相反,即组合的结果应该与最后一个值具有相同的等级。

有人能帮忙解释一下这种构图究竟是如何运作的吗?

我怀疑“组合值”是

  1. 一元:count
  2. 一元:1 2 3,

如果是这样的话,那么组成一系列一元值是否需要如本页@底部所述的 (应用) ?

kdb
  • 1 个回答
  • 60 Views
Martin Hope
bashprofile84
Asked: 2024-11-19 02:28:30 +0800 CST

(q/kdb+)如何对日期略有差异(+/-1 天)的数据进行分组以创建唯一标识符

  • 5

我正在尝试uniqueid为每个孩子创建列(因为他们在表中出现多次),以便我可以识别同名的孩子(没有孩子具有相同的dadname,mumname和childdob)

q)group select dadname, mumname, childdob from peopletb
dadname         mumname            childdob   |                  
----------------------------------------------| -----------------
simon           jessica             2007.03.27| 0 1658 2292 18295
mike            rachel              2007.02.06| 1 4293 10976 33439 53751 63077 81844 90244 98782 ..
james           lucy                2005.04.09| 2 12756 21354
francis         anne                2007.04.12| 3 4151 8252 159075 172735 175531 177199 206953 40..
francis         anne                2007.04.13| 7 3255 7292 128021 143595 157839 168120 186578 21..
mike            rachel              2007.02.05| 10 4292 10946 33339 56751 67077 82844 96244 99381 ..

等等

问题是,在childdob增加了一天和倒退一天的地方存在一些细微的差异。

对数据进行分组时,我希望将其childdob彼此分组为 +1 或 -1,以消除差异。

例如

mike            rachel              2007.02.05| 10 4292 10946 33339 56751 67077 82844 96244 99381 ..
&
mike            rachel              2007.02.06| 1 4293 10976 33439 53751 63077 81844 90244 98782 ..

会有相同的唯一标识

就像

francis         anne                2007.04.12| 3 4151 8252 159075 172735 175531 177199 206953 40..
&
francis         anne                2007.04.13| 7 3255 7292 128021 143595 157839 168120 186578 21..
kdb
  • 1 个回答
  • 47 Views
Martin Hope
marital_weeping
Asked: 2024-11-15 10:13:47 +0800 CST

根据 kdb 中的其他标量列筛选具有行列表的列

  • 5
w:(1 2;3 4;5 2); l:til count w; h:l+1;
show t:([] l; h; w);

l h w  
-------
0 1 1 2
1 2 3 4
2 3 5 2

我有一张表格,其中有t一列w包含行列表。我希望只保留表格中每行w位于l和值之间的元素。h

预期输出为:

l h w  
-------
0 1 ,1
1 2 ,
2 3 ,2

我尝试过

t:update w:w[where ((w>=l) and (w<=h))] from t;

但它失败了

'type
  [0]  t:update w:w[where ((w>=l) and (w<=h))] from t;

kdb
  • 1 个回答
  • 10 Views
Martin Hope
kka
Asked: 2024-11-06 19:29:18 +0800 CST

Kdb DbMaint 从符号到符号列表

  • 5

我在 HDB 中有一个现有的符号列,我想将其转换为符号列表,有人能建议最好的方法是什么吗?我知道添加列如下:

.ds.hdb.addCol[`:.;`tab;`eventType;enlist`$()]

但我们如何铸造一个现有的呢?

kdb
  • 1 个回答
  • 35 Views
Martin Hope
Hiruma
Asked: 2024-11-02 10:40:51 +0800 CST

将 kdb 的 key:value 对列分解为多个

  • 5

我有一个 kdb 表,其格式可以概括为

app  type     labels
--------------------------------------------------------
app1 frontend ("language:js";"owner:bob";"license:GPL")
app2 backend  ("language:go";"owner:alice")

我无法弄清楚如何将其labels直接“分解”到该表中自己的列中并获得类似的

app  type     language owner   license
-------------------------------------------
app1 frontend "js"     "bob"   "GPL"
app2 backend  "go"     "alice" ""

(注意可选的 kv)

我怎样才能做到这一点?我觉得我错过了一些非常简单的东西......

kdb
  • 1 个回答
  • 40 Views
Martin Hope
marital_weeping
Asked: 2024-10-28 22:14:09 +0800 CST

从表列中提取信息,该表列是 kdb 中的列表列表

  • 5

我有以下线性回归函数

// linear regression y vs x
// returns: intercept slope
linear:{
    if[not (count x)=(count y); show "x and y must have the same length"; exit 1];
    fit:{(enlist x) lsq y xexp/:til 1+z};
    fit[x; y; 1]
 };

// takes X and Y as a list of lists
linearLL:{[X;Y] t:([] x:X; y:Y); raze {9h$linear[x`x; x`y]} each t};

\d .

我想得到截距和斜率lr

/ sliding window from https://code.kx.com/q/kb/programming-idioms/
swin:{[f;w;s] f each {1_x,y}\[w#0; s]}

p:1 2 3 0N 0N 0N 4 5 0N 6 0N 0N 0N 7 8 9;
p:1f*p;
time:2024.01.01+til count p;
n:4;
t:([] p: p; time: time);

t:update c:til count t from t;
t:select from t where p>0;
t:update x:swin[::;n;c] from t;
t:update y:swin[::;n;p] from t;
/t:update y:swin[::;n;p] from t;
t:update x:1f*({distinct x} each x) from t;
t:update y:({x except 0} each y) from t;
t:update y:({x except 0N} each y) from t;
t:delete c from t;
show t:update lr:.regression.linearLL[x;y] from t;

其结果(正如预期):

p time       x           y        lr      
------------------------------------------
1 2024.01.01 ,0f         ,1f              
2 2024.01.02 0 1f        1 2f     -1   1  
3 2024.01.03 0 1 2f      1 2 3f   -1   1  
4 2024.01.07 0 1 2 6f    1 2 3 4f -2.5 1.9
5 2024.01.08 1 2 6 7f    2 3 4 5f -3.7 2.2
6 2024.01.10 2 6 7 9f    3 4 5 6f -3.9 2.2
7 2024.01.14 6 7 9 13f   4 5 6 7f -3.9 2.3
8 2024.01.15 7 9 13 14f  5 6 7 8f -5.5 2.5
9 2024.01.16 9 13 14 15f 6 7 8 9f -1.5 1.9

但是我'length在调​​用时出现错误:

show t:update intercept:lr[0], slope:lr[1] from t;

我假设的元素lr是一对元素的列表,但不知何故事实并非如此。我如何提取截距和斜率信息?

kdb
  • 1 个回答
  • 26 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve