тип отсутствующего значения в Юлии, например, NA_real_ - PullRequest
0 голосов
/ 02 октября 2018

Я не могу указать тип пропущенных данных.

Юлия поддерживает представление пропущенных значений в статистическом смысле, то есть для ситуаций, когда значение для переменной в наблюдении недоступно,но теоретически допустимое значение существует.

В соответствии с приведенным выше описанием, скопированным из руководства Джулии, я ожидал, что смогу создать missing объекты различных типов.Я получаю следующую ошибку:

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

Тип объекта - это полезная информация для переноса вместе с отсутствием, нужно ли переносить ее в отдельную переменную?

1 Ответ

0 голосов
/ 02 октября 2018

Существует одиночный тип Missing, единственным экземпляром которого является значение missing, которое представляет отсутствующее значение в Джулии.Следовательно, в отличие от 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.

...