如何用KDB中的NaN替换列中的前10个条目

如何用KDB中的NaN替换列中的前10个条目,kdb,Kdb,我在用求和法计算列。我想手动将计算列中的前n个条目从float更改为NaN。有人能告诉我怎么做吗 例如,如果我在表t中的列现在是mycol:(123456789),我尝试获取一个函数,该函数可以用NaN替换前n=4个条目,因此我在表t中的列变成mycol:(0n0n0n50n56789) 非常感谢你 Emily我们可以使用修正功能将前n项替换为空值。此外,最好根据类型为每个列使用适当的null文本。类似这样的方法会奏效: f: {nullDict: "ijfs"!(0Ni;0

我在用求和法计算列。我想手动将计算列中的前n个条目从float更改为NaN。有人能告诉我怎么做吗

例如,如果我在表t中的列现在是mycol:(123456789),我尝试获取一个函数,该函数可以用NaN替换前n=4个条目,因此我在表t中的列变成mycol:(0n0n0n50n56789)

非常感谢你


Emily

我们可以使用修正功能将前n项替换为空值。此外,最好根据类型为每个列使用适当的null文本。类似这样的方法会奏效:

f: {nullDict: "ijfs"!(0Ni;0Nj;0Nf:`); @[x; til y; :; nullDict .Q.ty x]}
这将修改列表x中的第一个y项
.Q.ty
将获取输入的类型,以便我们可以从字典中获取相应的值

然后可以将其用于单个列,如下所示:

update mycol: f[mycol;4] from tbl
您还可以使用函数形式一次性为多个列替换不同数量的项:

![tbl;();0b;`mycol`mycol2!((f[;4];`mycol);(f[;3];`mycol2))]
请注意,您需要使用您需要的任何其他类型修改
nullDict

更新:感谢Jonathon McMurray建议了一种更好的方法,使用以下代码为所有基本类型构建
nullDict

{x!first each x$\:()}.Q.t except " "

不必手动构建
nullDict
,您可以使用
{x!first each x$\:()}.Q.t(除了“
)为所有基本数据类型获取适当的null值eah,这是一个好主意。介意我加进去吗?谢谢你的回答!我能问一下,如果我的桌子在滚动怎么办。i、 e,我想用NaN替换列中的前15个条目,但可能我还没有14行。有没有办法在?@shree.pat18中添加该条件继续:)这不是你在这里问的同一个问题吗:答案不是问题要求的答案…然后继续讨论该主题以解决它!