开发者社区> 华章计算机> 正文

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

简介: 本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.7节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
+关注继续查看

2.7 NA与NULL值

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

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

image

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

image

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

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

image

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《R语言编程艺术》——导读
避免显式迭代是R语言的一个常见话题,这对于函数式编程语言来说是很典型的问题。你可以利用R的函数特性把迭代行为表达成隐式的,而不是用循环语句。这可以让代码执行起来更有效率,当R运行在大数据集上时运行时间会相差很大。
1645 0
《R语言编程艺术》——3.8 高维数组
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.8节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1224 0
《R语言编程艺术》——3.7 矩阵的行和列的命名问题
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.7节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1513 0
《R语言编程艺术》——3.6 避免意外降维
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.6节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1144 0
《R语言编程艺术》——3.5 向量与矩阵的差异
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.5节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
893 0
《R语言编程艺术》——3.4 增加或删除矩阵的行或列
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.4节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4352 0
《R语言编程艺术》——3.3 对矩阵的行和列调用函数
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.3节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2892 0
《R语言编程艺术》——3.2 一般矩阵运算
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.2节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2044 0
《R语言编程艺术》——3.1 创建矩阵
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.1节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1062 0
《R语言编程艺术》——第3章 3.0 矩阵和数组
本节书摘来自华章计算机《R语言编程艺术》一书中的第3章,第3.0节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1177 0
《R语言编程艺术》——2.12 关于c()的更多内容
本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.12节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1114 0
《R语言编程艺术》——2.11 向量元素的名称
本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.11节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1094 0
《R语言编程艺术》——2.10 测试向量相等
本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.10节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1320 0
《R语言编程艺术》——2.9 向量化的ifelse()函数
本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.9节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2502 0
《R语言编程艺术》——2.8 筛选
本节书摘来自华章计算机《R语言编程艺术》一书中的第2章,第2.8节,作者:(美)麦特洛夫(Matloff,N.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1329 0
+关注
华章计算机
文章
问答
视频
来源圈子
更多
+ 订阅
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载