在KDB中更改hdb中的值
我想将hdb中一列中的某个值更改为另一个值。我尝试使用dbmaint包。但是我得到了一些类型错误 这是我的密码在KDB中更改hdb中的值,kdb,Kdb,我想将hdb中一列中的某个值更改为另一个值。我尝试使用dbmaint包。但是我得到了一些类型错误 这是我的密码 fncol[DB;TBL;`col;{x:ssr[string x;"100";"i"$"0"]}]; 我试图将此列中的值100改为0,改为hdb中的所有日期 fncol[`:.;`tab;`a;{@[x;where x=100;:;0]}] 在这种情况下,您的lambda功能可以使用修正: 我假设它是一个整数列。 以上将当前值为100的索引处的值更改为0 在应用到一个重要的数据
fncol[DB;TBL;`col;{x:ssr[string x;"100";"i"$"0"]}];
我试图将此列中的值100改为0,改为hdb中的所有日期
fncol[`:.;`tab;`a;{@[x;where x=100;:;0]}]
在这种情况下,您的lambda功能可以使用修正:
我假设它是一个整数列。
以上将当前值为100的索引处的值更改为0
在应用到一个重要的数据库之前,我会强调彻底测试这一点
在这种情况下,您的lambda功能可以使用修正:
我假设它是一个整数列。
以上将当前值为100的索引处的值更改为0
在应用到一个重要的数据库之前,我要强调彻底测试它。出现类型错误的原因是您试图将一个嵌套的字符串列表添加到ssr函数中
我相信像{?[x=100;0;x]}这样的向量条件将更适合您的需要。此函数在x上对if语句元素进行求值,返回0(其中为true)和原始值(其中为false) 出现类型错误的原因是您试图将嵌套的字符串列表添加到ssr函数中
我相信像{?[x=100;0;x]}这样的向量条件将更适合您的需要。此函数在x上对if语句元素进行求值,返回0(其中为true)和原始值(其中为false) 在您的函数中,您似乎试图将字符串值100替换为整数值0。您会发现这很困难,因为如果您的起始列表是一个字符串列表,kdb将不允许您将某些值更改为其他类型
q)l:("a";"b";"c")
q)l[0]:1
'type
[0] l[0]:1
^
q)l[0]:"d"
q)l
"dbc"
此外,i$0将字符串转换为整数类型,而i$0将0内的文本解析为整数值。实际上,这意味着i$0将变成48i,因为在ASCII中0是48,而不是0
如果在出现类型错误并在q提示符处被置于多个方括号指示的调试模式后,您可以使用functions.z.ex和.z.ey查看失败的函数和参数,这可能会使您的函数中的调试变得更容易,看起来您正在尝试将字符串值100替换为整数值0。您会发现这很困难,因为如果您的起始列表是一个字符串列表,kdb将不允许您将某些值更改为其他类型
q)l:("a";"b";"c")
q)l[0]:1
'type
[0] l[0]:1
^
q)l[0]:"d"
q)l
"dbc"
此外,i$0将字符串转换为整数类型,而i$0将0内的文本解析为整数值。实际上,这意味着i$0将变成48i,因为在ASCII中0是48,而不是0
如果在得到类型错误并在q提示符处进入多个方括号指示的调试模式后,可以使用functions.z.ex和.z.ey查看失败的函数和参数,这可能会使调试更容易