使用不同类别的 NA

符号 NA 用于 logical 缺失值:

class(NA)
#[1] "logical"

这很方便,因为它可以很容易地被强制转换为其他原子矢量类型,因此通常是你需要的唯一方法:

x <- c(1, NA, 1)
class(x[2])
#[1] "numeric"

如果你确实需要另一种类型的 NA 值,请使用 NA_character_NA_integer_NA_real_NA_complex_。对于花哨类的缺失值,使用 NA_integer_ 进行子集化通常有效; 例如,要获取缺失值日期:

class(Sys.Date()[NA_integer_])
# [1] "Date"