如何在 KDB 中按符号删除行?
How do I drop rows by symbol in KDB?
我有一个 table 的形式:
sym date v ac lR zR
-------------------------------------------------------------
A 1999.11.18 4.47399e+07 29.11226
A 1999.11.19 1.08971e+07 26.71712 -0.08585502
A 1999.11.22 4705200 29.11226 0.08585502 1
A 1999.11.23 4274400 26.6311 -0.08907963 -0.7267457
A 1999.11.24 3464400 27.16703 0.01992441 0.5031717
A 1999.11.26 1237100 27.25305 0.003161097 0.2454482
A 1999.11.29 2914700 27.87499 0.02256457 0.4784645
A 1999.11.30 3083000 27.91469 0.00142315 0.1285608
我想删除每个 sym
的前 60 行。
我试过 ungroup 60 _ select from table by sym
但这对我来说似乎不对。我做错了什么?
对于内存中的 table 你可以这样做:
q)t:([]sym:20?`A`B;col:til 20)
q)select from t where({x in 5_x};i)fby sym
sym col
-------
B 9
A 11
B 12
A 13
B 14
A 15
B 16
B 17
A 18
A 19
将“5”替换为您想砍掉的数量
我有一个 table 的形式:
sym date v ac lR zR
-------------------------------------------------------------
A 1999.11.18 4.47399e+07 29.11226
A 1999.11.19 1.08971e+07 26.71712 -0.08585502
A 1999.11.22 4705200 29.11226 0.08585502 1
A 1999.11.23 4274400 26.6311 -0.08907963 -0.7267457
A 1999.11.24 3464400 27.16703 0.01992441 0.5031717
A 1999.11.26 1237100 27.25305 0.003161097 0.2454482
A 1999.11.29 2914700 27.87499 0.02256457 0.4784645
A 1999.11.30 3083000 27.91469 0.00142315 0.1285608
我想删除每个 sym
的前 60 行。
我试过 ungroup 60 _ select from table by sym
但这对我来说似乎不对。我做错了什么?
对于内存中的 table 你可以这样做:
q)t:([]sym:20?`A`B;col:til 20)
q)select from t where({x in 5_x};i)fby sym
sym col
-------
B 9
A 11
B 12
A 13
B 14
A 15
B 16
B 17
A 18
A 19
将“5”替换为您想砍掉的数量