1.1 什么是R

R (R Core Team 2019)包含R语言和一个有着强大的统计分析及作图功能的软件系统,由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman共同开发。R语言虽然看起来只能做统计,实际上它麻雀虽小,五脏俱全,编程语言该有的特性它基本都有(甚至支持OOP(面向对象编程))。

不要看到编程就害怕。使用R不需要懂编程。R语言最重要的特性之一就是,不懂编程的人可以轻松地用R自带的和和其他人编写的包,实现99.9%他们想要的功能(主要是数据分析);而懂编程的人可以轻松地使用编程,在R中实现他们想要的剩余的0.1%的功能。同时,R的编程语言非常简单易学,尤其是对于编程0基础的R使用者。像SAS,STATA这些商业软件,只能实现你95%的需求,且剩下的5%很难解决。

安装了R之后,你可以在其自带的“R”软件中使用(也可以直接在命令行使用),但是那个软件对新手的友好度不如RStudio. RStudio (RStudio Team 2015)是广受欢迎的R语言IDE(集成开发环境),它的一系列功能使得编辑,整理和管理R代码和项目方便很多。

了解更多R的优势,请看第1.1.2

1.1.1 安装R和RStudio

1.1.1.1 安装R

https://cran.r-project.org

前往CRAN,根据自己的操作系统(Linux,MacOS或Windows)选择下载安装R. (Linux用户亦可参考此处)

1.1.1.2 安装RStudio

https://www.rstudio.com/products/rstudio/download/

前往RStudio下载页,选择最左边免费的开源版本,然后选择对应自己的操作系统的版本,下载并安装。

1.1.2 为什么使用R,R与其他统计软件的比较1

(这一小节不影响R的学习进度,可以直接跳过到下一章

SAS,SPSS,Prism,R和Python是数据分析和科研作图常用的软件。

SAS,SPSS和Prism都是收费的,而且不便宜。比如SAS第一年需要10000多美元,随后每年要缴纳几千美元的年费。

R是GNU计划的一部分,因此R是一个自由软件 (Libre software)。它不仅免费,还允许用户自由地学习,运行该软件;拷贝,分发,修改并改进该软件,以帮助其他人。你可以 在GNU官网了解更多。

R比各种商业统计软件功能更强大。没错,免费的R比昂贵的商业软件功能更强大。所有SAS中的功能,都能在R中实现,而很多R中的功能无法在SAS中实现2

R有巨大的用户社群3,其中有很多热心的使用者/开发者在论坛上解答问题,或是编写免费获取的教程。SAS等软件虽然有客户支持,但是如果你用的是盗版……

R(RStudio)非常稳定。闪退率极低,而且就算闪退了,也完全不会丢失上一次工作中的数据,可以无缝衔接上一次的工作。我经常会创建一两个实验用的R脚本文件,我不需要把它们命名并保存在我的工作目录,重启RStudio的时候仍然可以使用它们。总之,关闭RStudio的时候,你甚至可以什么都不用保存;关闭,重启,无忧无虑地继续工作。设置Git后体验更佳。

R与其它编程语言/数据库之间有很好的接口。比如dbplyr 包帮助你方便地把R和数据库(MySQL, MariaDB, Postgres等等)连接起来,reticulate可以让你在R中使用Python.

Python(NumPy和SciPy)是近几年兴起的数据分析处理方案。在数据分析的应用中,R比Python历史更悠久,因此积攒了很多很棒的包。一般来说,python的强项是数据挖掘,而R的强项是数据分析,它们都是强大的工具。不用担心需要在二者之中做选择,因为rpy, reticulate等包可以让你在python中使用R,在R中使用python,详情请见第??章。无论你是数据分析零基础,还是有python数据分析的经验,都能从本书中获益。

至于Excel,它的定位原本就是办公(而不是学术)软件,数据分析的严谨性,大数据的处理能力,和功能的拓展非常局限。有五分之一的使用了Excel的遗传学论文,数据都出现了偏差 (Ziemann, Eren, and El-Osta 2016)。对了,Excel和SPSS和其它一些软件绘图的时候,坐标轴和/或图例中的文字竟然不能上下标!

我也不是说要严禁使用Excel(或者其它可用的工具),而是要清楚各种工具的优势和局限,物尽其用。比如当需要从PDF文件中提取表格数据时,我会把它们复制到Excel(因为兼容性强);我也会用Excel做一些数据的初步处理,比如删除数量不多的冗余的行和列,重命名变量名等。

虽然R是自由软件,但是我们要记得感激所有位R贡献智慧的奉献者。出于对知识劳动的尊重和,以及保持R的发展壮大,我呼吁有能力出资的使用者在https://www.r-project.org/foundation/donations.html 对R进行捐赠。

References

R Core Team. 2019. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

RStudio Team. 2015. RStudio: Integrated Development Environment for R. Boston, MA: RStudio, Inc. http://www.rstudio.com/.

Ziemann, Mark, Yotam Eren, and Assam El-Osta. 2016. “Gene Name Errors Are Widespread in the Scientific Literature.” Journal Article. Genome Biology 17 (1): 177. https://doi.org/10.1186/s13059-016-1044-7.