第1章 R语言介绍及软件安装
1.1 R语言介绍
R语言是开源(免费)的一款软件,主要用于统计计算及绘图,这是通常对R语言的理解。
R语言本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发的,因两人名字都是以R开头的,所以也因此形象地称为R。R语言诞生后随着不断地开发程序,版本更新存档成为问题,维也纳工业大学的Kurt Hornik承担了这个任务,在维也纳建立了R程序的归档,这使程序版本的发布变得更加规范,同时世界各地也出现了R程序的镜像。
随着时间的推移,于1997年中期R核心团队正式成立,包含11位早期成员。现在R语言版本依然还是由“R开发核心团队”负责开发。现有成员主要来自世界各地的大学,如牛津大学、加拿大西安大略大学等,也有来自企业的成员,例如AT&T实验室的Simon Urbanek等。R语言自身的扩展性非常强,随着发展和使用人数的增多,吸引了大量用户编写自定义的函数包供更多用户使用,这些程序包可以从世界各地的CRAM镜像上下载。
R语言是一种开发良好且简单有效的编程语言,包括条件、循环、用户定义的递归函数及输入和输出设施。R语言具有有效的数据处理和存储设施,R语言提供了一套用于数组、列表、向量和矩阵计算的运算符。R语言为数据分析提供了大型、一致和集成的工具集合。R语言提供了可以直接在计算机上或在纸张上打印图形的组件,以便于数据分析和显示。
另外,由于R语言是统计学家发明的编程语言,因此流行于统计、医学等专业领域,近年来由于不同程序包贡献者的努力,使R语言更加友好、更加适合普通用户使用。
1.在数据处理方面
R语言与Excel、Python、关系数据库等有许多共同点,R语言的优势在于有丰富的各类函数、数据处理及可视化功能,并且以周为单位在不断发展。实现相同功能,对比其他语言,R代码量有可能大幅降低,节约了使用者的时间。由于许多大数据处理包的出现,也使R的计算能力可以充分扩展:即便是使用普通功能,在性能一般的计算机配置情况下,处理几个吉字节(GB)的数据也是比较轻松的,相同情况下Excel是无能为力的,关系数据库也需要大量的表间操作,涉及冗长的SQL代码编写、调试、检查等巨大的工作量。
2.在数据可视化方面
R语言有完整的绘图体系,包含基础绘图体系、Lattice绘图体系、ggplot2绘图体系。上述内容,可以满足不同使用者的需求。结合自定义代码,R语言的绘图能力可以说是没有边界的。
ggplot2是用于绘图的R语言扩展包,其理念植根于Grammar of Graphics一书。它将绘图视为一种映射,即从数学空间映射到图形元素空间。例如将不同的数值映射到不同的色彩或透明度。该绘图包的特点在于并不去定义具体的图形(如直方图、散点图),而是定义各种底层组件(如线条、方块),以此来合成复杂的图形,这使它能以非常简洁的函数构建各类图形,而且默认条件下的绘图品质就能达到出版要求。
ggplot2和lattice都属于高级的格点绘图包,初学R语言的读者可能会在二者的选择上有所疑惑。从各自特点上来看,lattice入门较容易,作图速度较快,图形函数种类较多,例如它可以进行三维绘图,而ggplot2却不能。ggplot2需要一段时间的学习,但当读者跨过这个门槛之后,就能体会到它的简洁和优雅,而且ggplot2可以通过底层组件构造前所未有的图形,读者所受到的限制只是自身的想象力。
ggplot2概要内容可分为图层、标度、坐标轴等。
更加令人向往的是在R语言环境下:数据计算处理、统计分析、可视化等可以形成完整的操作流程。不用在不同的软件中将数据导入、计算、导出、可视化分开来处理。