数学人生分享 http://blog.sciencenet.cn/u/ChinaAbel 在苦难中寻求那微薄却终将照亮前程的智慧之光!

博文

统计编程--R语言简介

已有 35850 次阅读 2012-5-13 18:28 |个人分类:计算机&大数据|系统分类:教学心得| R语言, 统计, 编程

  久闻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),希望热心的博友能提供一个电子版。谢谢!以下是这本书的前言摘录:Numerous examples help the reader to quickly solve a variety of differential equations in the open source software R. Shows how R can be used as a problem solving environment, using examples from the biological, chemical, physical, mathematical sciences.

我想找的书由热心的博友bleu1860 提供:

8.

Solving Differential Equations in R.pdf


 R语言资料汇集  

R语言中文网-R语言论坛-最大的R语言中文社区R语言学习笔记 R语言入门教程R语言_数据分析_中国统计网


下载R程序,http://www.r-project.org/ 。当然,如果你一定是找不到这个网站中R语言的程序位置,那么请看这里:http://ftp.ctex.org/mirrors/CRAN/ ,在这里,请点击install R for the first time,这样你就可以把这个软件下载下来了。接下来就跟我们平时使用软件一样,安装,安装时请注意一点:安装路径不要有中文字符,以避免一些不必要的麻烦。接下来,我推荐大家一个额外的步骤,事实上你进行了上述步骤就可以真正开始你的R语言的使用了,但是我推荐大家再安装另外一个软件,叫做Rstudio。下载地址为:http://www.rstudio.com/ide/download/ 

如果Rstudio提示你不能找到R的位置,你可以自行寻找,这里不再赘述。


R语言教材小结(2014.9)


以下内容转自:常用统计学相关软件及网络资源

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.html
PDF阅览器,占硬盘空间极小,编译时无需关闭,因此使用特别方便。此外,使用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





https://blog.sciencenet.cn/blog-81613-570484.html

上一篇:未解决的数学问题
下一篇:Google的Go语言编程
收藏 IP: 202.101.111.*| 热度|

12 曹聪 刘洋 黄军林 郭利萍 徐大彬 鲍锟山 周俊花 曹君君 陈晓宇 梅卫平 段程伟 周向军

该博文允许注册用户评论 请点击登录 评论 (16 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-25 17:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部