本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第1章,第1.1节探究R的基本内容,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”公众号查看
1.1 探究R的基本内容
这里,假定你至少已经熟悉了R中的基础内容,或者以前已经使用过R。因此,我们不会介绍太多有关下载和安装的内容。网上提供了这些部分的大量相关信息。推荐你使用RStudio,这是一个集成开发环境(IDE),它比R自带的图形用户界面(GUI)更好用。可以访问https://www.rstudio.com/ 获取更多信息。
更多关于R项目的详细内容,可以访问https://www.r-project.org/获取R语言的概览。除此以外,在该网站有R语言的大量精彩的添加包,可以在网站https://cran.r-project.org/浏览任何与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基础包中的标准函数。
下载本书示例代码
你可以在http://www.packtpub.com通过你的账户下载本书的示例代码文件。如果你在其他地方购买了本书,可以访问http://www.packtpub.com/support并进行注册,选择通过邮件把文件直接寄给你。
可以通过以下步骤下载代码文件:
使用你的电子邮件地址和密码进行登录或者注册。
将光标放在顶部的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值。在清洗脏数据时这些函数十分有用。