R Cheat Sheet (5): Missing Values
在统计和数据分析中,丢失的值也具有重要的作用。不能简单地忽视这些丢失的值,而是要仔细分析,查找这些值丢失的原因,以及之它们之间所隐含的模式。
1. NA
在R中,用NA 来表示不可用(not available)或者丢失(missing)的值。任何涉及NA 的运算,结果都是NA ,例如:
> x <- c(44, NA, 5, NA) > x * 3 [1] 132 NA 15 NA
可以使用is.na() 来判断值是否为NA :
> y <- rnorm(1000) > z <- rep(NA, 1000) > my_data <- sample(c(y, z), 100) > my_na <- is.na(my_data) > my_na [1] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [23] TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE [45] TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE [67] TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE [89] FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE
需要注意的是,使用==并不能判断值是否为NA :
> my_data == NA [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [46] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [91] NA NA NA NA NA NA NA NA NA NA
NA 代表的是一个占位符,而非一个值, NA 参与逻辑运算,会导致逻辑表达式不完整,其结果也只能是 NA 。
R使用数字1表示TRUE,使用数字0表示FALSE,可以使用sum() 来计算前面my_data 中NA 的个数:
> sum(my_na) [1] 47
2. NaN
NaN 是另一种丢失值,表示“非数字(not a number)”:
> 0 / 0 [1] NaN > Inf - Inf [1] NaN