R语言简介
R是一种为统计计算和绘图而生的语言和环境,它是一套开源的数据分析解决方案,由一个庞大且活跃的全球性研究型社区维护。 R能够让你以一种简单而直接的方式创建优雅、信息丰富、高度定制化的图形。使用其他统计语言创建类似的图形不仅费时费力,而且可能根本无法做到。
R有着非常多值得推荐的特性:
-
多数商业统计软件价格不菲,投入成千上万美元都是可能的,而R是免费的。
-
R是一个全面的统计研究平台,提供了各式各样的数据分析技术。几乎任何类型的数据分析工作皆可在R中完成。
-
R囊括了在其他软件中尚不可用的、先进的统计计算例程。事实上,新方法的更新速度是以周来计算的。
-
R拥有顶尖水准的制图功能。如果希望复杂数据可视化,那么R拥有最全面且最强大的一系列可用功能。
-
R是一个可进行交互式数据分析和探索的强大平台,其核心设计理念就是支持下图中所概述的分析方法。举例来说,任意一个分析步骤的结果均可被轻松保存、操作,并作为进一步分析的输入。
-
R可以轻松地从各种类型的数据源导入数据,包括文本文件、数据库管理系统、统计软件,乃至专门的数据仓库。它同样可以将数据输出并写入到这些系统中。R也可以直接从网页、社交媒体网站和各种类型的在线数据服务中获取数据。
-
R是一个无与伦比的平台,在其上可使用一种简单而直接的方式编写新的统计方法。它易于扩展,并为快速编程实现新方法提供了一套十分自然的语言。
-
R的功能可以被整合进其他语言编写的应用程序,包括C++、 Java、 Python、 PHP、 Pentaho、SAS和SPSS。这让你在继续使用自己熟悉语言的同时在应用程序中加入R的功能。
-
R可运行于多种平台之上,包括Windows、UNIX和Mac OS X。这基本上意味着它可以运行于你所能拥有的任何计算机上。
-
如果你不想学习一门新的语言,有各式各样的GUI(Graphical User Interface,图形用户界面)工具通过菜单和对话框提供了与R语言同等的功能。
可惜的是,R的学习曲线较为陡峭。因为它的功能非常丰富,所以文档和帮助文件也相当多。另外,由于许多功能都是由独立贡献者编写的,并且以可选模块提供的,这些文档可能比较零散而且很难找到。事实上,要掌握R的所有功能,可以说是一项挑战。
R语言语法基础
R是一种区分大小写的解释型语言。你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性执行写在脚本文件中的一组命令。
R语句由函数和赋值构成。R使用<-
,而不是传统的=作为赋值符号。
示例:创建了一个名为x的向量对象,让其包含5个来自标准正态分布的随机偏差。
x <- rnorm(5)
注意:R允许使用=为对象赋值,但是这样写的R程序并不多,因为它不是标准语法,不推荐使用。
注释由符号#
开头。在#
之后出现的任何文本都会被R解释器忽略。
入门示例
示例:假设我们正在研究生理发育问题,并收集了10名婴儿在出生后一年内的月龄和体重数据。我们感兴趣的是体重的分布及体重和月龄的关系。
年龄(月) | 体重(千克) |
---|---|
01 | 4.4 |
02 | 5.2 |
03 | 5.3 |
05 | 7.2 |
11 | 9.5 |
09 | 7.3 |
03 | 6.0 |
09 | 10.4 |
12 | 10.2 |
03 | 6.1 |
具体实现代码:
age <- c(1,3,5,2,11,9,3,9,12,3)
weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
mean(weight)
sd(weight)
cor(age,weight)
plot(age,weight)
q()
说明: 以使用函数c()以向量的形式输入月龄和体重数据,此函数可将其参数组合成一个向量或列表。然后用mean()、sd()和cor()函数分别获得体重的均值和标准差,以及月龄和体重的相关度。最后使用plot()函数,从而用图形展示月龄和体重的关系,这样就可以用可视化的方式检查其中可能存在的趋势。函数q()将结束会话并允许你退出R。
结果分析: 可以看到,这10名婴儿的平均体重是7.06kg,标准差为2.08kg,月龄和体重之间存在较强的线性关系(相关度=0.91) 。这种关系也可以从图所示的散点图中看到。不出意料,随着月龄的增长,婴儿的体重也趋于增加。