为什么Julia/Juliab在过滤时表现不同?

为什么Julia/Juliab在过滤时表现不同?,julia,juliadb,Julia,Juliadb,执行 filter(i -> !ismissing(i.dep_delay > 60), select(flights, (:carrier, :dep_delay))) 应该在延迟超过60分钟的情况下归还承运人(我的理解!)。但它返回的载波具有所有正延迟和负延迟 为什么会这样?我知道你很想写: filter(i -> coalesce(i.dep_delay > 60, false), select(flights, (:carrier, :dep_delay)))

执行

filter(i -> !ismissing(i.dep_delay > 60), select(flights, (:carrier, :dep_delay)))
应该在延迟超过60分钟的情况下归还承运人(我的理解!)。但它返回的载波具有所有正延迟和负延迟


为什么会这样?

我知道你很想写:

filter(i -> coalesce(i.dep_delay > 60, false), select(flights, (:carrier, :dep_delay)))

如果你写
!ismissing(i.dep_delay>60)
如果
i.dep_delay
没有
缺失,您将得到
true
,先生,请简要说明coalesce()的功能!它是Base中的标准函数。如果您查找它的帮助,您将得到:返回参数中的第一个值,该值不等于
缺少的值
,如果有。否则返回缺少的
。在一个典型的应用程序中(如您拥有的应用程序),它用于用某个值替换缺少的
。所以本质上,
coalesce(v,v2)
ismissing(v)是一样的吗?v2:v
。不同之处在于,
coalesce
可以接受任意数量的参数,但最常见的是双参数形式。