R语言入门——NA、NAN、Inf(缺失值的识别)

00引言

这篇的主角是R语言中缺失值(NA)的识别与提取。先介绍NAN、Inf及其运算。在最终介绍缺失值(NA),毕竟重要的都压轴嘛。

1、Inf

在实数轴上除了确定的有限点,还有两个无限:正无穷、负无穷。用Inf-Inf表示。

> Inf
[1] Inf
> -Inf
[1] -Inf
> 1/0
[1] Inf
> -1/0
[1] -Inf

2、NAN(Not a Number)

NANNot a Number的简称。在R语言中什么是不确定的数呢?下面通过代码给出例子,大家自己推理总结。

> 0/0
[1] NaN
> Inf/Inf
[1] NaN
> Inf -Inf
[1] NaN
> Inf -Inf 
[1] NaN

上面的不难看出一般很犹豫的值就会显示不是一个数。但是也有一些奇怪的(违反数学分析的极限定理)需要大家记住。方便理解后面的逻辑。

> 0^Inf
[1] 0
> Inf^0
[1] 1
> 0^0
[1] 1

3、NA与逻辑运算符

大家先思考一下下面的逻辑表达式的值:NA == 1、NA == NA、NA > 0、NA + 1、NA * 1、NA / 1会是什么?

> NA == 1
[1] NA
> NA == NA
[1] NA
> NA > 0
[1] NA
> NA + 1
[1] NA
> NA * 1
[1] NA
> NA / 1
[1] NA

NA会对一般的逻辑运算加减运算免疫,这是为什么呢?。其实很好理解,我么可以把NA理解为不知道的一个数(这里注意和不确定(NAN)区别),对于不知道的一个数NA我们一般会结合if.na函数来判断转化处理缺失值。在看下面的例子:
例子1:

> NA | T
[1] TRUE
> NA & F
[1] FALSE

例子2:

> NA & T
[1] NA
> NA | F
[1] NA

理解上述两个例子需要知道逻辑值的逻辑。我一般用一句话来区别:非空非零为假。当然下面的例子三我就不解释了。结合上面的知识就很显然了。
例子3:

> NA^0
[1] 1
> NA*0
[1] NA

4、总结

水平有限,如有错误评论区指出。希望帮助大家理解处理R语言中的缺失值。

发布了31 篇原创文章 · 获赞 87 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_46111814/article/details/105620779