Найдите недостающие значения в Julia, например, функцию is.na в R - PullRequest
0 голосов
/ 16 сентября 2018

В документации Julia 1.0.0 говорится об отсутствующих значениях в Julia и R:

В Юлии отсутствующие значения представлены отсутствующим объектом, а не NA. Используйте ismissing (x) вместо isna (x). Функция пропуска обычно используется вместо na.rm = TRUE (хотя в некоторых частных случаях функции принимают аргумент пропуска).

Вот пример кода в R, который я хотел бы дублировать в Юлии:

> v = c(1, 2, NA, 4)
> is.na(v)
[1] FALSE FALSE  TRUE FALSE

(Первое замечание: is.na - это правильное написание функции R, а не isna, как показано в приведенной выше цитате, но это не моя точка зрения.)

Если я последую предложению документации использовать ismissing в Julia, я получу результат другого типа, чем в R.

julia> v = [1, 2, missing, 4]
4-element Array{Union{Missing, Int64},1}:
 1
 2
  missing
 4

# Note that based on R, I was expecting: `false false true false` 
# though obviously in a different output format.
julia> ismissing(v)
false

Чтобы продублировать код R, мне, кажется, нужно сделать что-то вроде:

julia> [ismissing(x) for x in v]
4-element Array{Bool,1}:
 false
 false
  true
 false

Это работает, но не так кратко, как is.na в R. Может быть, я что-то упустил.

Я тоже пробовал:

julia> ismissing(v[:])
false

julia> ismissing(v[1:end])
false

Есть предложения?

1 Ответ

0 голосов
/ 16 сентября 2018

Вы можете транслировать ismissing с .:

julia> v = [1, 2, missing, 4]
4-element Array{Union{Missing, Int64},1}:
 1
 2
  missing
 4

julia> ismissing.(v)
4-element BitArray{1}:
 false
 false
  true
 false
...