我想將一個日期列添加到表中,所以我想要做一個更新,將今天的日期添加到每一行。KDB如何創建一個長度爲n的向量
http://www.timestored.com/b/forums/topic/add-a-column-to-a-table-kdb/
下面這個鏈接,我只想更新它,但我不能找出如何創建充滿了今天的日期長度計數表的載體。 聽起來很簡單,我只是無法找到辦法做到這一點,所以感謝任何幫助。
我想將一個日期列添加到表中,所以我想要做一個更新,將今天的日期添加到每一行。KDB如何創建一個長度爲n的向量
http://www.timestored.com/b/forums/topic/add-a-column-to-a-table-kdb/
下面這個鏈接,我只想更新它,但我不能找出如何創建充滿了今天的日期長度計數表的載體。 聽起來很簡單,我只是無法找到辦法做到這一點,所以感謝任何幫助。
您可以使用'take'功能#
。例如。
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
正如詹姆斯所提到的,如果更新/使用原子然後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"
哦,是的,甚至不需要那個矢量...不錯。謝謝 – chrise
我同意@ james-little,只需使用'update dt:.z.d from t'方法;不需要剪切矢量並追加。 – davidcrossey