kdb +:根据条件从列表中删除元素

时间:2017-04-30 21:36:37

标签: list kdb

我有一个如下所示的列表,并希望删除过去的日期或低于今天的日期。我是否需要if语句或是否有某种方式可以做到这一点?

q)d
1970.03.16 1980.03.17 1990.03.19 2000.03.13 2010.03.15
q)type d
14h

2 个答案:

答案 0 :(得分:3)

您可以一起跳过该功能并以内联方式执行此操作。

在列表中查找日期大于今天(d>.z.D)的索引,然后使用该列表从列表中提取项目(d where d>.z.D

q)d:1970.03.16 1980.03.17 1990.03.19 2020.03.13 2017.09.15
q)d>.z.D
00011b
q)d where d>.z.D
2020.03.13 2017.09.15

答案 1 :(得分:1)

我相信我明白了:

q)today:`date$.z.z
q)func:{[lst] lst where today<lst}
q)d
1970.03.16 1980.03.17 1990.03.19 2020.03.13 2017.09.15
q)func d
2020.03.13 2017.09.15