写在前面的话:
本文是Coursera - R Programming的笔记
涉及到书籍链接均使用豆瓣
发现typo请指出 :)
第一周
R的前身S
- R是S的方言
- S Initial Version,1976年,最初是Fortran的统计分析库,作者John Chambers
- S Version 3,1988年,用C语言实现,Statistical Models 《白皮书》,引入统计建模的功能
- S Version 4,1998年,最新版 之后基本没有改动,Programming with Data 《绿皮书》
- 所有权变更:Bell实验室 +---> Insightful �+---> TIBCO
- 荣誉:1998年 Association for Computing Machinery's Software System Award
S哲学
John Chambers在Stages in the Evolution of S一书中写到:
we wanted users to be able to begin in an interactive environment, where they did not consciously think of themselves as programming. Then as their needs became clearer and their sophistication increased, they should be able to slide gradually into programming, when the language and system aspects would become more important.
从S到R
- 1991年诞生,作者Ross lhaka和Robert Gentleman
- 1993年发布
- 1995年成为使用GNU GPL的自由软件
- 1996年组建公共邮件列表:R-help 和 R-devel
- 1997年R核心开发团队成立,掌管R的源码
- 2000年,R Version 1.00 发布
- 2013年,R Version 3.0.2 发布
R的特性
- 语法Syntax与S相似
- 语义Semantic和S差别很大(虽然表面上很相似)
- 跨平台
- 开发活跃,一年一个主版本
- Quite lean 核心很小,众多功能分布在各个包中
- 强大的绘图能力
- 不仅有强大的交互性,而且是编程语言。实现用户到程序员的转变(S的哲学)
- 活跃的社区
自由软件
四大基本原则
http://www.fsf.org
- freedom 0,不论处于什么目的,你都有使用该软件的自由
- freedom 1,你有研究软件运作方式的自由,也可以根据需要对其进行修改。(也就是保证你可以获得软件的源码)
- freedom 2,你有重新分发软件的自由(你甚至可以将软件卖给他人)
- freedom 3,你可以改进软件并向公众开放
R的缺点
- 基于40年前的技术
- 对动态和三维图像的支持较差(最近已有改进)
- 功能与客户需求和基本用户的分布有关(若是缺少某个功能,你就得自己去写)
- R对象必须储存在物理内存中(对象大小不能超过内存的大小,不然装不进去,在大数据时代这是一个短板)
- R不是万能的
R系统设计
从概念划分,R系统分为两部分:
- base:从CRAN[1]下载的基本系统
- Everything else
资料
CRAN
- An Introduction to R:熟悉R的基本功能
- Writing R Extensions:如何写R包
- R Data Import/Export
- R Installation and Administration:如何从源码编译R
- R Internals:R的底层实现(玻璃心勿读)
主要课本
- Chambers (2008). Software for Data Analysis, Springer. (your textbook)
- Chambers (1998). Programming with Data, Springer.
- Venables & Ripley (2002). Modern Applied Statistics with S, Springer.
- Venables & Ripley (2000). S Programming, Springer.
- Pinheiro & Bates (2000). Mixed-Effects Models in S and S-PLUS, Springer.
- Murrell (2005). R Graphics, Chapman & Hall/CRC Press.
其他参考书
-
Comprehensive R Archive Network ↩