本节书摘来自华章社区《r语言机器学习:实用案例分析》一书中的第1章,第1.1节探究r的基本内容,作者[印度] 拉格哈夫·巴利(raghav bali)迪潘简·撒卡尔(dipanjan sarkar),更多章节内容可以访问云栖社区“华章社区”公众号查看
1.1 探究r的基本内容
你必须已经熟悉r的交互式解释器,通常称作“读入–求值–输出”循环(read-evaluate-print loop, repl)。这个解释器与任何等待输入的命令行界面类似,它以输入提示符>作为开始,表示r正在等待输入。如果输入需要多行,例如当编写函数时,在每个后续行中会有+提示符,这意味着你没有完成整个表达式的输入,r要求你输入表达式的剩余部分。
r也可以读取和执行以.r为扩展名的完整文件,该文件包括命令和函数。通常,任何一个大的应用程序都由多个.r文件组成,每个文件都在应用程序中扮演各自的角色,通常被称作一个模块。我们将在接下来的各节中探索r的主要特点和功能。
1.1.1 使用r作为科学计算器
r中最基本的元素包括变量和算术运算符,算术运算符可以用来进行像计算器那样的数学运算,甚至复杂的统计计算。例如:

记住,在r中的一切都是以向量形式存在的。即使在以上代码片段中的输出结果也是向量。它们都有一个先导符号[1],表示这是一个含有一个元素的向量。
也可以像任何其他程序设计语言一样,将值赋给变量。例如:
1.1.2 向量运算
r中最基本的数据结构是向量。基本上,在r中的任何元素都是向量,即使是像上述例子中看到的一个数也是向量。向量本质上是一个序列或值的集合。可以使用:运算符或用于连接值的c函数来生成向量。例如:
在以上代码段中,你可以清楚地看到,我们仅仅使用+运算符把两个向量相加,而没有使用任何循环。这称为向量化,我们在后面将进行更多的讨论。接下来,介绍更多的向量运算,如下所示:
输出:
你或许被上面的第2个运算搞糊涂了,这里尝试用一个较小的向量乘以一个较大的向量,但仍然得到了运算结果!如果仔细观察,就会发现r还返回了一个警告。在这个示例中,当两个向量在长度上不同时,本例中的小向量c(2,4)循环或者重复变为c(2,4,2,4,2),然后将它乘以第一个向量c(1,3,5,7,9),得到最终的结果向量c(2,12, 10,28,18)。这里使用的其他函数是r基础包中的标准函数。
下载本书示例代码
可以通过以下步骤下载代码文件:
使用你的电子邮件地址和密码进行登录或者注册。
将光标放在顶部的support选项卡。
单击code downloads & errata。
在search文本框中栏输入书名。
选择你要下载的代码文件的书。
在下拉菜单中选择你购买本书的地方。
单击code download。
一旦文件下载,请确保使用以下软件的最新版本对文件夹进行解压缩:
用于windows的winrar/7-zip
用于mac的zipeg/izip/unrarx
用于linux的7-zip/peazip
1.1.3 特殊值
由于在数据分析和机器学习的过程中,你将处理大量混乱和脏的数据,所以记住一些r中的特殊值是十分重要的,这样它们中的某一个在后面出现时,你不会太惊讶。
这里你应该关心的主要值包括:inf,代表无穷大(infinity);nan,代表非数值(not a number);na代表数值缺失或者无效(not available)。下面的代码片段展示了对这些特殊值的逻辑测试以及它们的结果。请记住,true和false是逻辑数据类型值,类似于其他程序设计语言。
从这些函数的名字中,可以清晰地看出它们的作用。它们清楚地表明哪些值是有限的,哪些值是无限的,并分别检查nan值和na值。在清洗脏数据时这些函数十分有用。