《R语言编程艺术》——2.7 NA与NULL值

2.7 NA与NULL值

用过其他脚本语言的读者也许会知道“查无此物”的值,例如Python中的None和Perl中的undefined。R有两个类似值:NA和NULL。
在统计数据集,我们经常遇到缺失值,在R中表示为NA。而NULL代表不存在的值,而不是存在但未知的值。让我们看看它们在具体情形下是怎么用的。
2.7.1 NA的使用
在R的很多统计函数中,我们要求函数跳过缺失值(也就是NA)。如下例所示:
《R语言编程艺术》——2.7 NA与NULL值

在第一个调用中,因为x中有一个缺失值NA,导致mean()无法计算均值。但通过把可选的参数na.rm(意思为移除NA)设置为真(T),可以计算其余元素的均值。相比之下,R会自动跳过空值NULL,我们将在下一节介绍。
下面几个NA值的模式都不一样:

《R语言编程艺术》——2.7 NA与NULL值

2.7.2 NULL的使用
NULL的一个用法是在循环中创建向量,其中每次迭代都在这个向量上增加一个元素。在这个简单的例子中,我们建立了偶数向量:

《R语言编程艺术》——2.7 NA与NULL值

回顾第1章, 是模运算符(modulo operator),它给出除法运算的余数。例如13除以4的余数是1,即13 %% 4 =1。(算术和逻辑运算符列表见7.2节。)因此,例子中的循环开始于一个空向量,然后依次向其中添加2、4等元素。
当然,这只是一个人为的例子,并且这里有更好的方法完成这件事。下面是寻找1:10中偶数的另外两种方法:
《R语言编程艺术》——2.7 NA与NULL值

这里关键是为了阐述NA与NULL的区别。如果在前例中使用NA而不是用NULL,则会得到多余的NA:

《R语言编程艺术》——2.7 NA与NULL值

NULL是R的一种特殊对象,它没有模式。

上一篇:安卓开发环境的搭建(Eclipse+ADT+SDK+JDK的下载)加创建项目以及遇到的坑


下一篇:《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码