本文在Creative Commons许可证下发布。
在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来。由于工作原因,直到今年暑假一个赴京工作的机会与一位统计专业的人士聊天,才知道R语言的强大威力!(当然这里没有贬低SPSS, SAS,Stata的意思)。
R语言是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。它是统计领域广泛使用的诞生于 1980年左右的 S 语言的一个分支。 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft 公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。S-PLUS的使用手册,只要经过不多的修改就能成为 R的使用手册。换句话说:R,是S-PLUS的一个“克隆”,但R语言是免费的。
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用户可自定义功能 。与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。 R内建多种统计学及数字分析功能。 R语言的功能也可以透过安装套件(Packages,用户撰写的功能)增强。增加的功能有特殊的统计技术、绘图功能,以及编程介面和数据输出/输入功能。这些软件包是由R语言、 LaTeX、Java及最常用C语言和Fortran撰写。下载的执行档版本会连同一批核心功能的软件包,而根据 CRAN纪录有过千种不同的软件包。其中有几款较为常用,例如用于经济计量、财经分析、人文科学研究以及人工智能。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的面向对象程序设计功能。此外虽然R语言主要用于统计分析或者开发统计相关的软体,但也有人用作矩阵计算。其分析速度可媲美GNU Octave甚至商业软件MATLAB。
该语言的语法表面上类似 C,但在语义上是函数设计语言的(functional programming language)的变种并且和Lisp 以及 APL有很强的兼容性。特别的是,它允许在“语言上计算”(computing on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。
R是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。R的主要网站是 http://www.r-project.org。在那儿可以下载到R的安装程序和源代码、各种外挂程序和文档(点击进入:Windows (95 and later),再点击:base,下载SetupR.exe,约18兆,此便是R FOR WINDOWS的安装程序。双击SetupR.exe,按照提示一步步安装即可)。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN(Comprehensive R Archive Network(R综合典藏网)的简称)获得(http://cran.r-project.org)。
统计编程R语言的更详细的介绍见:
中文官网:http://www.rproject.cn/
英文官网:http://www.r-project.org/
http://cran.r-project.org/other-docs.html
http://cran.r-project.org/mirrors.html
在这里我也给出一些学习R语言的材料共各位需要了解R语言的博友参考。(均来自网上,有版权,请勿商用!)
1. R for Beginners (中文版).pdf
2. R导论.pdf
3. R语言简介.pdf
4. 153 分钟学会R.pdf
5.统计编程的框架与R语言统计分析基础.pdf
6.R语言初步_统计绘图与编程.ppt
7.R语言与统计分析.ppt
最近Springer出了一本用R语言解微分方程的书:Solving Differential Equations in R (Series: Use R!Soetaert, Karline, Cash, Jeff, Mazzia, Francesca,pp248, Springer,2012),希望热心的博友能提供一个电子版。谢谢!书名叫:Solving Differential Equations in R.pdf
R语言资料汇集
R语言教材小结(2016.12)
以下内容转自:常用统计学相关软件及网络资源
1、统计编程、应用软件
(1)、C语言
C语言计算速度快,但是编程难度大
入门教材:
C语言趣味程序百例精解
(2)、Matlab
偏重于矩阵计算
相关教材:(见人大经济论坛)
(a)、Applied Econometrics using MATLAB
(b)、Computational Statistics Handbook with MATLAB
(c)、Applied Statistics Using SPSS, STATISTICA, MATLAB and R
(d)、An Introduction to Statistics in Matlab(可作为入门教材之一)
使用Matlab求解最大、小值时的有用工具:
(a)、fmincon
matlab自带函数,主用用于求解带约束条件时,给定函数的最小值,见相应的matlab help文档。
遗传算法(速度慢)
(b)、fminunc
Matlab自带函数,求解无约束条件下,某给定函数的最小值。
(c)、遗传算法工具箱
http://www.geatbx.com/ea_matlab.html主要优点:对目标函数几乎没有要求,主要用于目标函数形式比较复杂情况下的优化问题
主要缺点:计算速度慢。
(3)、R语言
http://www.r-project.org/R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R的语言风格和matlab及其类似,数据处理时,均采用向量化处理。R是开源软件,因此在国外的高等院校中较为普及,是统计学、生物学及经济学等相关专业硕士至博士级的学生的必须课程。
但R的主要缺点是,R的内存管理能力较差,运行时会占用较多的内存资源,因此编程过程中,注意及时释放内存。此外,计算速度慢,特别当需要多次循环迭代时,速度极慢。解决的方法是,将需要循环迭代的部分用C或者Fortran语言编写,然后采用相关的接口程序加以调用。
R自带的编辑器较为简单,现在一般都使用开源软件Tinn-R来进行编辑。Tinn-R具有一定的语法检测和高亮显示功能。其下载地址:
http://www.sciviews.org/Tinn-R/
相关教材:
(a)、R语言简介(最初级的入门教材,为R软件自带说明书)
(b)、Time series analysis and its applications with R examples(结合时间序列分析)
(c)、Introductory Statistics with R
(d)、Programming with R(侧重于介绍R语言内在的逻辑和思想,较为高级,需要有一定的编程开发基础)
(e)、Statistics with R(例子为主,较为全面)
(4)、S及S-Plus
S-Plus为商业软件。不过由于凡是能在S-Plus环境运行的程序,基本上都可以在R环境运行。
相关教材:
(a)、Modelling Financial Time Series with S-PLUS
(b)、Applied Smoothing Techniques for Data Analysis The Kernel Approach with S-Plus Illustrations
(c)、Modern Applied Statistics with S (R、S-Plus等语言方面的经典教程)
(d)、S Programming (R、S-Plus等语言方面的经典教程,内容更深刻,比Modern Applied Statistics with S难度大)
(5)、SPSS、SAS
SPSS是社会统计学的应用软件,再开发能力差。但简单易用。在国内较为普及,因此网络上可查找的资源较多
SAS是功能最强大的统计软件,具有优越的大型数据操作能力,为国外统计学专业的必备课程。但入门较难。
相关教程:
(a)、The Little SAS Book.
2、文字编辑软件
(1)、CTex
http://www.ctex.org/HomePage中文版的latex。它已经集成了文字编辑和pdf编译为一起,是一款优化的数学论文编辑软件。用其编辑出来的数学公式大方美观。支持中文输入和编辑中文论文。
(2)、MikTex
http://www.miktex.org/开源软件,功能类似于Ctex,但不支持中文编辑。自带的编辑器功能简单,一般结合软件TeXnicCenter和SummtraPDF(均为开源软件)软件使用。
(3)、TeXnicCenter
http://www.texniccenter.org/开源软件,功能类似于WinEdt编辑器。某些功能甚至超过了WinEdt。
(4)、SummtraPDF
http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.htmlPDF阅览器,占硬盘空间极小,编译时无需关闭,因此使用特别方便。此外,使用SummtraPDF还可以阅览djvu格式(http://djvu.org/)的文件,因此功能特别强大。在国外使用非常广泛。
相关教程及论坛地址:
(a)、http://en.wikibooks.org/wiki/LaTeX
(b)、http://bbs.ctex.org/
(5)、UltraEdit和UltraComp
商业软件。具有强大的数据编辑和文字比较功能。可以与上述编程与论文编辑软件结合使用,可极大的提高效率。
3、网络资源
(1)、人大经济论坛
http://bbs.pinggu.org/可以下载数学相当可观的统计、经济、统计软件类外文电子书籍
(2)、统计之都
http://cos.name/
(3)、小木虫论坛
http://emuch.net/bbs/讨论科研、出国等方面的主要论坛之一
(4)、R语言中文论坛
http://www.biostatistic.net/forum-42-1.html