美文网首页R语言初级教程R语言数据-R语言-图表-决策-Linux-Python
R语言初级教程(12): NA、Inf、NaN、NULL 特殊值

R语言初级教程(12): NA、Inf、NaN、NULL 特殊值

作者: R语言和Python学堂 | 来源:发表于2018-10-17 23:19 被阅读4次

这几个都是R语言里面的特殊值,都是R的保留字(reserved words)。它们的意义分别为:

  • NA:表示缺失值(Missing value),是“Not Available”的缩写

  • Inf:表示无穷大,是“Infinite”的缩写

  • NaN:表示非数值,是“Not a Number”的缩写

  • NULL:表示空值,即没有内容

下面通过一些例子来了解它们的用法。由于有关NA的内容较多,最后再介绍它。

1. Inf

我们知道,对于分数,当分母为0分子不为0时,结果为无穷大。当分子为正数时,结果为正无穷大;当分子为负数时,结果为负无穷大。在R中也是这样,比如:

> 2 / 0      ## 正无穷大
[1] Inf
> -2 / 0      ## 负无穷大
[1] -Inf

Inf也可参与一些运算,比如:

> 2/Inf       ## 当分子为有限值、分母无穷大时,结果为 0
[1] 0
> exp(-Inf)      ## 自然数e的负无穷大次幂为0
[1] 0
> (0:3)^Inf       ## 0的穷大次幂为0;1的穷大次幂还为1;大于1的数的无穷大次幂为无穷大
[1]   0   1 Inf Inf

此外,在R中用is.finite(), is.infinite()来判断是否为无穷大数,比如:

> is.finite(2)
[1] TRUE
> is.infinite(2/0)
[1] TRUE

2. NaN

有些运算会导致结果为非数值,在R中用NaN来表示,比如:

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

在R中,用is.nan()来判断是否为非数值,比如:

> is.nan(2)
[1] FALSE
> is.nan(NA)     ## 缺失值NA不是非数值
[1] FALSE
> is.nan(0/0)
[1] TRUE

3. NULL

NULL表示空值,表示没有内容。

一般常用在函数参数中,表示该参数没有被赋予任何值。也经常用在初始化变量,表示变量没有任何内容,因此它的长度为0。来看个例子:

> x <- NULL
[1] 0
> length(x)
[1] 0
> is.null(x)      ## is.null()函数判断是否为空值
[1] TRUE

4. NA

NA表示缺失值(Missing value),我们将会经常碰到这个值。

你可能想知道向量中是否有缺失值。对于这个问题,有人说用==关系运算符就行了,是这样吗?来看个例子:

> x <- c(2, 5, NA, 7, NA, 8)
> x == NA
[1] NA NA NA NA NA NA
> is.na(x)    ## 正确姿势
[1] FALSE FALSE  TRUE FALSE  TRUE FALSE

显然用==不可行(为啥不行,仔细想想就明白),在R中可用is.na()函数来判断是否为缺失值

有时我们想删除缺失值或想知道有多少个缺失值,可以通过下面代码来实现:

> x[! is.na(x)]     ## 删除缺失值
[1] 2 5 8
> sum(is.na(x))     ## 缺失值的个数
[1] 2

对于处理含有缺失值的向量,很多函数在默认参数下不能工作,比如:

> x <- c(2, 5, NA, 7, NA, 8)
> mean(x)
[1] NA
> max(x)
[1] NA
> mean(x, na.rm=TRUE)
[1] 5.5
> max(x, na.rm=TRUE)
[1] 8

可通过设置na.rmTRUE来删除缺失值,然后再统计

有时我们还想知道缺失值NA在哪个位置。此时可以通过which()函数来输出位置索引,比如:

> x <- c(2, 5, NA, 7, NA, 8)
> which(is.na(x))    ## 第3和5个元素是缺失值
[1] 3 5

有关R语言里面的特殊值就讲到这。

如若有遗漏,后期将会添加至本博客。


感谢您的阅读!想了解更多有关R语言技巧,请关注我的微信公众号“R语言和Python学堂”,我将定期更新相关文章。

相关文章

  • R语言初级教程(12): NA、Inf、NaN、NULL 特殊值

    这几个都是R语言里面的特殊值,都是R的保留字(reserved words)。它们的意义分别为: NA:表示缺失值...

  • 2019-07-25

    四、NA、Inf、NaN、NULL 特殊值(https://zhuanlan.zhihu.com/p/470299...

  • R语言中特殊值NaN、Inf 、NA、NULL

    前言:学习R过程中,数据中往往会出现一些诡异的符号,而不是数值,那么他们到底是什么意思呢?下面带领大家一探究竟。 ...

  • R语言中NA,NAN,Null,Inf的区别

    从网上找了一下,整理如下:NA:缺失数据NaN:无意义的数,比如sqrt(-2), 0/0。Inf:正无穷大-In...

  • about NaN

    NaN是什么 NaN是空值,在Python中表示什么也没有。在R中表示为NULL; 如何产生NaN 通过np.na...

  • 20190503-R语言NA,NULL,Inf,-Inf区别

    1.NA,NULL,Inf,-Inf区别 ①NA:向量中缺失的元素Missing value ②NULL:向量的缺...

  • js特殊数值

    javascript中有许多特殊值 0,"",null,undefined,[],{},NaN,false,这篇文...

  • 一些报错

    1. Error in do_one(nmeth) :NA/NaN/Inf in foreign function...

  • R与统计:如何进行数据处理

    删除缺失值 R中缺失值使用NA表示。NA是R中的三个逻辑值之一,另外两个是TRUE和FALSE。NULL表示无效对...

  • R语言NA值

    在data.frame中,删除列中存在的NA中: 1. 删除one column (eg. 第1列) 中的NA d...

网友评论

    本文标题:R语言初级教程(12): NA、Inf、NaN、NULL 特殊值

    本文链接:https://www.haomeiwen.com/subject/gildzftx.html