2018-11-02
閱讀量:
1360
用filter()函數(shù)處理缺失值
R 的一個(gè)重要特征使得比較運(yùn)算更加復(fù)雜,這個(gè)特征就是缺失值,或稱 NA(not available,
不可用)。 NA 表示未知的值,因此缺失值是“可傳染的”。如果運(yùn)算中包含了未知值,那么
運(yùn)算結(jié)果一般來(lái)說(shuō)也是個(gè)未知值:
NA > 5
#> [1] NA
10 == NA
#> [1] NA
NA + 10
#> [1] NA
NA / 2
#> [1] NA
最令人費(fèi)解的是以下這個(gè)結(jié)果:
NA == NA
#> [1] NA
要想理解為什么會(huì)這樣,最容易的方式是加入一點(diǎn)背景知識(shí):
# 令x為Mary的年齡。我們不知道她有多大。
x <- NA
# 令y為John的年齡。我們不知道他有多大。
y <- NA
# John和Mary的年齡是相同的嗎?
x == y
#> [1] NA
# 我們不知道!
如果想要確定一個(gè)值是否為缺失值,可以使用 is.na() 函數(shù):
is.na(x)
#> [1] TRUE
filter() 只能篩選出條件為 TRUE 的行;它會(huì)排除那些條件為 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






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論