- 博客(9)
- 收藏
- 关注
原创 kdb+ apply each function to each argument
q)({x+1};{neg x};{x*x}) @\:/: (1 2 3)2 -1 13 -2 44 -3 9q)
2020-10-30 20:28:26
123
原创 kdb fill nested list
A nested list :q)ls:(1 2;1 2;3 4;3 4;enlist 5;`long$())q)ls1 21 23 43 4,5`long$()Question : How do you fill the null?Solution:Create a function :q)f:{$[count y;y;x]}Apply f to nested list:q)f\[ls]1 21 23 43 4,5,5
2020-10-14 10:36:50
108
原创 kdb+ rotate的簡單用法
把一個字符串向後移位例如 : 已知字符串"hello",向後移動6位變爲 “nkrru”.利用rotate函數:q)(.Q.a!6 rotate .Q.a)"hello""nkrru"rotate會把列表移動,後面被移走的會被最前面相應的補全,例如:q)ls:1 2 3 4 5 6q)4 rotate ls5 6 1 2 3 4從index 4向後,後面4個會被前面4個補全...
2020-09-28 19:41:30
263
原创 2020-09-23
檢查一個keyed table中的key是否有重複的有一個table:q)tk1 k2| d -----| --1 a | 102 b | 202 b | 30要檢查k1和k2中的key都是unique:q).[`u#;flip value flip key t;{"got duplicates"}]"got duplicates"`u# 看作一個函數flip value flip key t 是傳進去的argument如果有error,則抛出 {“got duplic
2020-09-23 19:57:51
84
原创 kdb+在list中,控制填入0N的次數
google group 有一個問題:有一個list ls:2 0N 0N 0N 3 0N 0N 0N 4 5我們要用0N的前面那個值把0N填入,而且還要控制填入的數量,例如:填入一次的結果是:2 2 0N 0N 3 3 0N 0N 4 5填入兩次的結果是:2 2 2 0N 3 3 3 0N 4 5首先看一下prev[ls]:q)ls:2 0N 0N 0N 3 0N 0N 0N 4 5q)prev[ls]0N 2 0N 0N 0N 3 0N 0N 0N 4我們可以把向後移動的
2020-09-16 13:00:14
205
2
原创 kdb+清空tables
先加載tables:q)makedb[100000;2000]q)tables `.`depth`quotes`tradesq)tradestime sym src price size-------------------------------------------------2020.09.15D08:00:07.090000000 DELL L 29.79 40202020.09.15D08:00:21.049000000 O
2020-09-15 13:20:43
141
1
原创 kdb+練習:百元買百雞問題
一直公鷄5元,一直母鷄3元,三隻小鷄一元。用100元去買這三種雞,要求剛好花光這100元。問這些組合都是什麽?這個題可以用kdb+中的cross來解決,但是換一種方法來解決male: 1+til 20female: 1+til 34chick: 1+til 300先看公鷄和母鷄的組合:f1:{[ma;fe] ma {x,y,(5*x)+3*y}\: fe}公鷄和母鷄的組合結果與小鷄的組合:f2:{[ch;mafe] ch {x,y,(x%3)+y}\: mafe}把公鷄,母鷄,小
2020-09-07 12:25:58
158
原创 kdb+練習題:兩個列表之間用一個函數相關聯
有一個symbol列表和一個date列表,按照一個函數的規則把兩個列表裏的每個元素一一對應、symlist:10?`A`B`Csymdate:`date$10?10f:{[d;s] d,s}過程如下:建立函數,d表示date列表,s表示一個symbol:func:{[d;s]d f\: s} projection先固定日期列表symdate,再把每個symlist的symbol傳入:func[symdate;]each symlist把結果平整打開:raze func[symd
2020-09-06 21:34:58
136
原创 kdb+練習題
kdb+實現數學計算:1!+2!+3!+ … +10!(+/){(*/) 1+til x}each 10輸出的結果是:4037913
2020-09-06 21:03:03
71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人