gpt4 book ai didi

kdb - kdb中如何将多列合并为一列?

转载 作者:行者123 更新时间:2023-12-05 09:04:10 25 4
gpt4 key购买 nike

我已经编写了以下有效的代码,但我认为会有更好的方法来解决这个问题。

我有这样的东西

table:([]time:9 11;Bid1px:4 5;Bid2px:7 3;Bid3px:6 8);
time Bid1px Bid2px Bid3px
-------------------------
9 4 7 6
11 5 3 8
table:update All_bid:flip(Bid1px;Bid2px;Bid3px) from table;
time Bid1px Bid2px Bid3px All_bid
---------------------------------
9 4 7 6 4 7 6
11 5 3 8 5 3 8

我想像下面这样使用 Bidcols 编写代码,但似乎找不到方法,我们将不胜感激。

Bidcols:`Bid1px`Bid2px`Bid3px;
table:update All_bid:flip(Bidcols????) from table;

最佳答案

一种方法是使用 # (take),它在表上将返回列的子集。由于 kdb 中的表只是一个字典列表,因此可以在此表上使用 value each 来获取每一行的值:

q)table:([]time:9 11;Bid1px:4 5;Bid2px:7 3;Bid3px:6 8)
q)Bidcols:`Bid1px`Bid2px`Bid3px;
q)// using just #, all_bid column is a table so each row is a dict
q)update all_bid:Bidcols#table from table
time Bid1px Bid2px Bid3px all_bid
-----------------------------------------------------
9 4 7 6 `Bid1px`Bid2px`Bid3px!4 7 6
11 5 3 8 `Bid1px`Bid2px`Bid3px!5 3 8
q)// adding value each gives us the final desired result
q)update all_bid:value each Bidcols#table from table
time Bid1px Bid2px Bid3px all_bid
---------------------------------
9 4 7 6 4 7 6
11 5 3 8 5 3 8

关于kdb - kdb中如何将多列合并为一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68916949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com