KDB - 如何 select 带有前缀数字的列?
KDB - How to select a column with prefixed numbers?
我有一个 table 个属性,我正试图从这些属性中抽离,虽然这个抽离有意义,但我成功从中抽离的几个关键属性值都带有数字前缀(用于排序目的)。这些是我们想要调整和报告的重要属性(有几个这样的属性)。
我在这里发现了一个类似的问题: 当我清理字典 .Q.id t
时,我在列前添加了 a
当我 运行 键入返回的值时,它返回 99h
所以主元 returns 是一个字典。
我正在尝试利用 enlist(`1CODE)#t
但目前还无济于事。
有什么想法或建议吗?
q) t
monthDate | 1CODE 2CODE 3CODE 4CODE
----------| ------------------------------------
2022.01.01| 18.0054 0.1537228 4.116678 9.332936
2022.02.01| 17.87151 0.1527959 3.866393 9.685012
2022.03.01| 17.739 0.1518747 3.646734 10.00515
...
我不确定你在开始时所说的 pivoting of 是什么意思,但我遇到的一个问题是 enlist 函数应该使用方括号 - 而不是你 [=13] 中的圆括号=].所以你想要的代码是:
enlist[`1CODE]#t
您不能在键控 table 上使用 colName#table
(在这种情况下,99h
是键控 table,虽然是键控 table也是一本字典)。因此,您必须首先使用 0!
取消 table 的密钥
t:1!flip`monthDate`1CODE`2CODE!(2022.01.01 2022.02.01 2022.03.01;3?100.;3?10.);
q)((),`1CODE)#0!t
1CODE
--------
61.37452
52.94808
69.16099
q)((),`1CODE`2CODE)#0!t
1CODE 2CODE
------------------
61.37452 0.8388858
52.94808 1.959907
69.16099 3.75638
kdb 中的表只是字典列表。类型 99h 可以是键控 table 和字典。如果您已经清理了 table:
,您仍然可以使用 qsql
q)select a1CODE from .Q.id t
a1CODE
--------
18.0054
17.87151
17.739
另一种选择是使用 xcol 重命名您的列:
q)t:(`monthDate,` rotate'string 1_cols t)xcol t
q)select CODE1 from t1
CODE1
--------
47.35547
75.21426
99.14374
我有一个 table 个属性,我正试图从这些属性中抽离,虽然这个抽离有意义,但我成功从中抽离的几个关键属性值都带有数字前缀(用于排序目的)。这些是我们想要调整和报告的重要属性(有几个这样的属性)。
我在这里发现了一个类似的问题:.Q.id t
时,我在列前添加了 a
当我 运行 键入返回的值时,它返回 99h
所以主元 returns 是一个字典。
我正在尝试利用 enlist(`1CODE)#t
但目前还无济于事。
有什么想法或建议吗?
q) t
monthDate | 1CODE 2CODE 3CODE 4CODE
----------| ------------------------------------
2022.01.01| 18.0054 0.1537228 4.116678 9.332936
2022.02.01| 17.87151 0.1527959 3.866393 9.685012
2022.03.01| 17.739 0.1518747 3.646734 10.00515
...
我不确定你在开始时所说的 pivoting of 是什么意思,但我遇到的一个问题是 enlist 函数应该使用方括号 - 而不是你 [=13] 中的圆括号=].所以你想要的代码是:
enlist[`1CODE]#t
您不能在键控 table 上使用 colName#table
(在这种情况下,99h
是键控 table,虽然是键控 table也是一本字典)。因此,您必须首先使用 0!
t:1!flip`monthDate`1CODE`2CODE!(2022.01.01 2022.02.01 2022.03.01;3?100.;3?10.);
q)((),`1CODE)#0!t
1CODE
--------
61.37452
52.94808
69.16099
q)((),`1CODE`2CODE)#0!t
1CODE 2CODE
------------------
61.37452 0.8388858
52.94808 1.959907
69.16099 3.75638
kdb 中的表只是字典列表。类型 99h 可以是键控 table 和字典。如果您已经清理了 table:
,您仍然可以使用 qsqlq)select a1CODE from .Q.id t
a1CODE
--------
18.0054
17.87151
17.739
另一种选择是使用 xcol 重命名您的列:
q)t:(`monthDate,` rotate'string 1_cols t)xcol t
q)select CODE1 from t1
CODE1
--------
47.35547
75.21426
99.14374