如何通过 sym 删除前 252 行?

cjm*_*671 1 kdb

我有一个带有符号日期索引的表。

我试图恢复同一个表,但跳过每个符号的前 252 行。

我预计会是:

ungroup 252_select by sym from t
Run Code Online (Sandbox Code Playgroud)

但这行不通。我究竟做错了什么?

Mar*_*lly 7

你正在寻找这样的东西

select from t where 252<=(rank;i) fby sym
Run Code Online (Sandbox Code Playgroud)

whererank返回排序列表中的位置,并fby用于将此函数应用于iwhen split on sym的每个子集

您的尝试失败的原因

  • select by sym from t仅返回每个符号的最后一行
  • 因此,当您使用删除行时,252_您将删除最后 252 行
  • ungroup那么可能会失败,因为您有两列或更多列具有不同长度的向量元素

如果您想通过执行此操作,ungroup可以使用xgroupas 执行以下操作以保留分组中的所有行

ungroup 252_/:/:`sym xgroup t
Run Code Online (Sandbox Code Playgroud)