参考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics, 2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html
前言:关于R
在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data analysis and visualization which is built based on S language.)。
R的源起
R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。
R is free
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用户可自定义功能。
R是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的,在那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。
R的特点
(1) 有效的数据处理和保存机制。
(2) 拥有一整套数组和矩阵的操作运算符。
(3) 一系列连贯而又完整的数据分析中间工具。
(4) 图形统计可以对数据直接进行分析和显示,可用于多种图形设备。
(5) 一种相当完善、简洁和高效的程序设计语言。它包括条件语句、循环语句、用户自定义的递归函数以及输入输出接口。
(6) R语言是彻底面向对象的统计编程语言。
(7) R语言和其它编程语言、数据库之间有很好的接口。
(8) R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。
(9) R语言具有丰富的网上资源
一 入门训练
1. 获取帮助
> help.start() 开启帮助文档
>help(solve) 显示某命令的帮助信息,或者
>?solve
对于由特殊字符指定的功能,这些参数必须用单引号或双引号括起来,使之成为一个“字符串”,如
> help("[[")
与某个主题相关的例子通常可以用下面的命令得到
> example(topic)
2. 命令简介
R对大小写是敏感的;名称不能以数字开始;
基本的命令由表达式或者赋值语句组成。如果一个表达式被作为一条命令给出,它将被求值、打印而表达式的值并不被保存。一个赋值语句同样对表达式求值之后把表达式的值传给一个变量,不过并不会自动的被打印出来;
命令由分号(;)来分隔,或者另起新行;
基本命令可以由花括号(f和g)合并为一组复合表达式;
注释几乎可以被放在任何地方,只要是以井号( # )开始,到行末结束;
如果一个命令在行莫仍没有结束,R将会给出一个不同的提示符,默认的是‘+’。
3. 命令文件的执行和输出转向到文件
如果命令存储于一个外部文件中,比如工作目录work中的commands.R,他们可以随时在R的任务中被执行
> source("commands.R")在Windows中Source也可以由File菜单执行。
函数sink,
> sink("record.lis")
将把所有后续的输出由终端转向一个外部文件,record.lis。命令
> sink() 将把信息重新恢复到终端上。
4. 数据的保持与对象的清除
R所创建、操作的实体是对象。对象可以是变量、数组、字符串、函数以及由这些元素组成的其它结构;
> objects() 用来显示目前存储在R中的对象的名字。而当前存储的所有对象的组合被称为workspace;
清除对象可以使用rm命令:
> rm(x, y, z, ink, junk, temp, foo, bar)
所有在一个R任务中被创建的对象都可以在文件中被永久保存,并在其它的R任务中被使用。在每个R任务结束时用户都有机会保存当前有效的所有对象。如果用户这样做的话,对象将被写入当前目录一个名为.RData。当R被再次启动时R会从这个文件中再载入workspace。同时相关的命令记录也被载入。
所以,推荐大家在用R进行不同的分析时分别使用不同的工作目录。
5. 基本数据结构
数值型(numeric)
|
1,1.2,3.1415926
|
复数型(complex)
|
1+2i
|
字符型(character)
|
‘A’/ “hello world!”
|
逻辑型(logical)
|
TRUE / FALSE
|
向量(vector), 见下节
矩阵(matrix):
更一般的说数组是向量在多维情况下的一般形式。事实上它们是可以被两个或更多的指标索引的向量,并且以特定的方式被打印出来。
因子(factors) 提供了一种处理分类数据的更简介的方式。
列表(list):
是向量的一种一般形式,并不需要保证其中的元素都是相同的类型,而且其中的元素经常是向量和列表本身。
数据框(data frame):
是一种与矩阵相似的结构,其中的列可以是不同的数据类型。可以把数据框看作一种数据"矩阵",它的每行是一个观测单位,而且(可能)同时包含数值型和分类的变量。
函数( function):
能够在R的workspace中存储的对象。我们可以通过函数来扩展R的功能。