如何在kdb中移除混合列表中的通用空值(::)
移除Q语言混合列表中的通用空值(::)
针对你遇到的问题,以下两种方法可以有效移除列表中的通用空值:
方法1:通过精确匹配过滤
利用~(精确相等)结合each逐个判断元素是否为通用空值,再用where保留非空值元素:
sample where not each sample~::
方法2:通过类型判断过滤
通用空值的类型码为101,可以通过type函数识别并过滤:
sample where 101 <> each type sample
为什么except无效?
在Q语言中,except和in操作依赖=进行相等性判断,但通用空值::与自身用=比较会返回0b(假),导致:: in sample无法识别列表中的通用空值,因此sample except ::无法生效。而~是精确匹配运算符,能正确识别元素是否为通用空值。
内容的提问来源于stack exchange,提问作者CleanSock
相关产品推荐
相关产品推荐

