kdb/q 如何将列表附加到表中?

kdb/q How to append a list to a table?

提问人:mmv456 提问时间:11/7/2023 最后编辑:mmv456 更新时间:11/7/2023 访问量:54

问:

我有一张这样的表格:

名称Table

名字 包括
1
鲍勃 0
1

我有一个函数可以从包含的?列:

// get the bits
fGetBits:{[nameTable]
  nameTable: select Included from nameTable;
  //BitsTable
  value flip nameTable}

这将返回类型为 0h 的以下内容:

1 0 1

我的问题是,我怎样才能将这个 0h 列表添加回 nameTable 表的 Included 列,替换当前值?

例如,如果我有以下内容:

0 1 1

我希望我的表现在看起来像这样:

名字 包括
0
鲍勃 1
1

感谢您的帮助。

列表 追加 kdb

评论


答:

3赞 rianoc 11/7/2023 #1

这个问题有点难以理解,但是:

q)nameTable:([] Name:`Ann`Bob`Cat;Included:101b)
q)nameTable
Name Included
-------------
Ann  1
Bob  0
Cat  1
q)exec Included from nameTable
101b
q)type exec Included from nameTable
1h
q)nameTable[`Included]:011b
q)nameTable
Name Included
-------------
Ann  0
Bob  1
Cat  1
q)

评论

0赞 mmv456 11/7/2023
哇,这太棒了。我不知道 exec,但这似乎比我上面尝试做的要好得多,而且它实际上返回了一个列表类型(而不是对我来说是 0h)。非常感谢您的帮助。
2赞 terrylynch 11/7/2023 #2

另外值得一提的是一个简单的声明 https://code.kx.com/q/ref/update/update

q)update Included:011b from([] Name:`Ann`Bob`Cat;Included:101b)
Name Included
-------------
Ann  0
Bob  1
Cat  1