在kdb/q中创建带有空格符号的表时出现错误

  • 本文关键字:符号 错误 空格 kdb 创建 kdb
  • 更新时间 :
  • 英文 :


我试图在kdb中创建一个符号表,其中表的值在里面有空间。我有

tab:([colOne:`$"value 1"`$"value 2"]colTwo:`$"value 3"`$"value 4")
当前为

,但这只返回

ERROR: `type (wrong type)

我遵循http://www.kdbfaq.com/kdb-faq/tag/sym-with-a-space

应该是:

tab:([colOne:`$("value 1";"value 2")]colTwo:`$("value 3";"value 4"))

请记住q中的求值是从左到右:

colTwo:`$"value 3"`$"value 4"
`$"value 4" will be evaluated to symbol

然后它会尝试将这个符号应用到左边的内容:

"value 3" `$"value 4"

可以得到'type

你是正确的sym与空间部分,但在创建一个表列接受列表作为输入。

tab:([colOne:`a`b]colTwo:`c`d)

将ok,因为`a`b是一个列表,但当使用带有空格的系统时,您需要将它们包含在()中以创建列表。

下面的

也可以工作,尽管sergey的答案是更好的方法。

tab:([colOne:(`$"value 1";`$"value 2")]colTwo:(`$"value 3";`$"value 4"))

最新更新