我正在使用julia-0.7。以下代码
using Statistics
x=[missing, 0]
mean(skipmissing(x))
给出0,其中missing
是julia-0.7的内置缺失值。如果我进一步尝试
x[2]=missing
mean(skipmissing(x))
我收到错误消息。在第二种情况下,获得missing
而不是错误的最佳方法是什么?
我担心使用if
/ else
,因为此代码段在程序中已多次迭代。
答案 0 :(得分:1)
我可以推荐的最快的代码是使用if/else
,但我想您无法避免:
sx = skipmissing(x)
iterate(sx) === nothing ? missing : mean(sx)
像iterate
这样的应该比例如length
。
但是,总的来说,您也指出了我最近也遇到的一个问题,因为mean
的设计存在不一致之处,因为如果您collect
会得到:
julia> mean(collect(skipmissing(x)))
NaN
如果您已经提出(因此也没有错误,也没有missing
)。