热线电话:13121318867

登录
2018-11-02 阅读量: 1186
用filter()函数处理缺失值

R 的一个重要特征使得比较运算更加复杂,这个特征就是缺失值,或称 NA(not available,

不可用)。 NA 表示未知的值,因此缺失值是“可传染的”。如果运算中包含了未知值,那么

运算结果一般来说也是个未知值:

NA > 5
#> [1] NA
10 == NA
#> [1] NA
NA + 10
#> [1] NA
NA / 2
#> [1] NA

最令人费解的是以下这个结果:

NA == NA
#> [1] NA

要想理解为什么会这样,最容易的方式是加入一点背景知识:

# xMary的年龄。我们不知道她有多大。
x <- NA
# 令y为John的年龄。我们不知道他有多大。
y <- NA
# John和Mary的年龄是相同的吗?
x == y
#> [1] NA
# 我们不知道!

如果想要确定一个值是否为缺失值,可以使用 is.na() 函数:

is.na(x)
#> [1] TRUE

filter() 只能筛选出条件为 TRUE 的行;它会排除那些条件为 FALSE NA 的行。如果想保

留缺失值,可以明确指出:

df <- tibble(x = c(1, NA, 3))
filter(df, x > 1)
#> # A tibble: 1 × 1
#> x
#> <dbl>
#> 1 3
filter(df, is.na(x) | x > 1)
#> # A tibble: 2 × 1
#> x
#> <dbl>
#> 1 NA
#> 2 3
604.2320
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子