我无法指定丢失数据的类型。
Julia支持从统计意义上表示缺失值,即在观察值中变量无可用值但理论上存在有效值的情况下。
根据从Julia手册复制的上述说明,我希望可以创建不同类型的missing
对象。我收到以下错误消息:
missing::Real
ERROR: TypeError: in typeassert, expected Real, got Missing
对象类型是随身携带的有用信息,我是否需要在单独的变量中携带?
答案 0 :(得分:4)
有一个单例类型Missing
,其唯一实例是值missing
,表示Julia中缺少一个值。因此,与R相对,在float类型,逻辑类型等缺失之间没有区别。
进行这种设计的原因是,在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
的信息,但是在实践中使用起来并不方便,因为这样一来,您就必须单独每种缺失值的语法,目前编写missing
就足够了,您便拥有了想要的。
请注意,这正是大多数R用户所做的,因为当他们写NA
时,它是逻辑类型,并且会根据其放入的收集类型在后台进行转换。根据我的经验,您几乎看不到NA_real_
和类似的东西在实际的R代码中。