我正在尝试向表中添加日期列,因此我想进行更新,将每日的日期添加到每一行。
http://www.timestored.com/b/forums/topic/add-a-column-to-a-table-kdb/
按照该链接我会更新它,但我无法找到如何创建一个填充今天日期的长度计数表向量。 听起来很简单,我只是找不到这样做的方法,所以感谢任何帮助。
答案 0 :(得分:4)
您可以使用'take'功能#
。 E.g。
q)length:10
q)length#.z.d
2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27
虽然您可能只是定期更新,例如
q)t
s p
-----
IBM 1
IBM 1
IBM 1
q)update dt:.z.d from t
s p dt
----------------
IBM 1 2017.04.27
IBM 1 2017.04.27
IBM 1 2017.04.27
答案 1 :(得分:4)
正如James所说,如果使用原子更新/生成表中的列,则kdb会自动将原子转换为所需长度的向量。
q)tab:([] col1:`a`b`c;col2:1 2 3)
q)update date:.z.d from tab
col1 col2 date
--------------------
a 1 2017.04.27
b 2 2017.04.27
c 3 2017.04.27
翻转
也会发生这种情况q)flip (1 2 3;`a)
1 `a
2 `a
3 `a
但是对于字符串或其他嵌套结构,这不会发生。在这种情况下,您必须手动生成向量
q)update str:count[i]#enlist "hello" from tab
col1 col2 str
-----------------
a 1 "hello"
b 2 "hello"
c 3 "hello"