缺失值missing

using Statistics
a=[true,false,missing]
mean(skipmissing(a))

这样就可以成立,但是我在把a换成下面的形式就不能成立了

using Statistics
a=[missing,missing,missing]
mean(skipmissing(a))

我有一个很大的向量,我想对其每取几个去做一个平均值,于是我就写了循环,但是当我取出的几个都是missing时,mean(skipmissing(a))这个函数就不行了,怎样解决呢?我是要先判断一步么?有没有像R语言里面加上na.rm=True,即使是都是缺失值也能求平均,求出来是缺失值。

重载skipmissing:

function Base.skipmissing(a::Vector{Missing})
    [missing]
end

楼上方法有误:全是 missing 不代表类型为 Vector{Missing}

建议:

  • 手动判断 (isempty)
  • 提 issue

您好,您说的判断isempty,我发现在全是missing的时候也是false呢?您能把两种方法稍微讲详细些么?小白一个。谢谢您

我的vector是any类型,所以按照您的方法还是报错

你看这样行不行

try mean(skipmissing(a))
catch ArgumentError
       missing
end
1 个赞

可以了谢谢大佬,感谢

julia> a=skipmissing([missing, missing])
skipmissing([missing, missing])

julia> isempty(a)
true

julia> isempty(skipmissing([0]))
false
1 个赞