像R的is.na函数一样在Julia中找到缺失的值 [英] Find the missing values in Julia like R's is.na function

查看:93
本文介绍了像R的is.na函数一样在Julia中找到缺失的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Julia 1.0.0 documentation 谈到了Julia和R中缺少值的问题:

The Julia 1.0.0 documentation says this about missing values in Julia and R:

在Julia中,缺失值由缺失对象而不是NA表示.使用ismissing(x)代替isna(x).通常使用skipmissing函数代替na.rm = TRUE(尽管在某些特定情况下,函数采用skipmissing参数).

In Julia, missing values are represented by the missing object rather than by NA. Use ismissing(x) instead of isna(x). The skipmissing function is generally used instead of na.rm=TRUE (though in some particular cases functions take a skipmissing argument).

这是我想在Julia中复制的R中的示例代码:

Here is example code in R that I would like to duplicate in Julia:

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

(首先请注意,is.na是R函数的正确拼写,不是上面引文中所示的isna,但这不是我的意思.)

(First note that is.na is the R function's correct spelling, not isna as shown in the quote above, but that is not my point.)

如果我按照文档的建议在Julia中使用ismissing,则会得到与R不同的结果.

If I follow the documentation's suggestion to use ismissing in Julia, I get a different type of result than in 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代码,我似乎必须做类似的事情:

To duplicate the R code, I seem to have to do something like:

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

可以,但是不像R中的is.na简洁.也许我遗漏了一些东西.

That works, but it is not as succinct as is.na in R. Maybe I am missing something.

我也尝试过:

julia> ismissing(v[:])
false

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

有什么建议吗?

推荐答案

您可以使用.广播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

这篇关于像R的is.na函数一样在Julia中找到缺失的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆