创建包含空格为kdb / q的符号的表时出现错误的类型错误

时间:2013-05-16 16:49:09

标签: 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

2 个答案:

答案 0 :(得分:2)

应该是:

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

答案 1 :(得分:2)

对于带有空格部分的sym你是正确的,但在创建表格列时,将列表作为输入。

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

可以正常,因为`a`b是一个列表,但是当使用包含空格的syms时,您需要将它们括在()中以制作列表。

下面的

也会有效,虽然sergey的回答是一种更好的方法。

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