代码之家  ›  专栏  ›  技术社区  ›  jangorecki

Julia中缺失值的类型,比如nau real_

  •  0
  • jangorecki  · 技术社区  · 8 年前

    我无法指定丢失数据的类型。

    根据上面的描述从朱莉娅手册复制我希望我可以创建 missing 不同类型的对象。我收到以下错误:

    missing::Real
    ERROR: TypeError: in typeassert, expected Real, got Missing
    

    1 回复  |  直到 8 年前
        1
  •  4
  •   Bogumił Kamiński    8 年前

    有一个单例类型 Missing missing 表示Julia中缺少的值。因此,与R相反,float、logical等类型的缺失没有区别。

    这样设计的原因是,在Julia中,您可以定义自己的类型,因此不可能像R中那样列出所有可能缺少的类型。

    julia> missing isa Missing
    true
    
    julia> supertype(Missing)
    Any
    

    通常,允许缺少值的集合的元素类型为 Union{Missing, Actual_Type_You_Want}

    julia> [1, 2, missing]
    3-element Array{Union{Missing, Int64},1}:
     1
     2
      missing
    
    julia> Dict(1=>1, 2=>missing)
    Dict{Int64,Union{Missing, Int64}} with 2 entries:
      2 => missing
      1 => 1
    

    理论上,可以定义参数化类型 Missing{T} 那会是那种类型的 T 丢失的 你得到了你想要的。

    请注意,这正是大多数R用户在编写时所做的 NA NA_real_

    推荐文章