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
要想理解为什么会这样,最容易的方式是加入一点背景知识:
# 令x为Mary的年龄。我们不知道她有多大。
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
2
3
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论