第一章:基本原理与概念的学习
1.1对象的产生,排列及删除
1.1.1 函数ls()的功能是显示所有在内存中的对象.显示出在名称中带有某个指定字符的对象,可以利用pattern来实现,简称pat。eg1:ls(pat="m"). 进一步显示显示在名称中以某个字母开头的对象ls(pat="^m") .显示内存中所有的对象的信息ls.str().删除对象利用rm()语句,rm(x,y)表示删除对象x,y.rm(list=ls())删除内存中的所有对象,删除指定的对象rm(list=ls(pat="^m")).R语言中应该用分号来隔开同一行中的不同命令语句。
1.2在线帮助
1.2.1 ?lm和help(lm)和help("lm")一样.查询特殊字符的帮助文档时只能用后者.eg:help("*").查询帮助文档时利用语句help("plot2",try.all.packages=TRUE)在所有的包中查询。查看未加载的包中的帮助文档help("bs",packages="special").使用关键词的搜索在R中可以利用help.search("tree").找出所有名字中含有指定字符串的函数apropos(help)
第二章:R的数据操作
2.1对象.
2.1.1所有的对象都有两个内在的属性:类型和长度。类型包括“字符型”,“数值型”,“逻辑型”,“复数型”。类型用mode()查看。长度用length()查看。缺失的数据用NA(不可用)表述。字符型的值输入时需加上"",需要引用的"的时候,让他跟在反斜杠\的后面。
> x <- "Double quotes \" delimitate R’s strings."
> x
[1] "Double quotes \" delimitate R’s strings."
2.2在文件中读写数据
2.2.1函数read.table创建数据框,读取表格形式数据的主要方法。下表为read.table常用的代码
函数scan比read.table更加灵活。scan可以指定变量的类型。具体可以help("scan")
函数read.fwf()可以用来读取文件中一些固定宽度格式的数据。
2.3存储数据
2.3.1函数write.table()可以在文件中写入一个对象
2.3.2数据的保存
如果要记录一组任意数据类型的对象。save(x,y,z,file="xyz.RData").ASCII=TRUE可以在不同的机器之间任意转换。load()可以加载数据。save.image()和save(list=ls(all=TRUE),file=".RData")
2.4生成数据
2.4.1规则序列
> 1:10-1
[1] 0 1 2 3 4 5 6 7 8 9
> 1:(10-1)
[1] 1 2 3 4 5 6 7 8 9
函数seq
seq(1,5,0.5);seq(length=9,from=1,to=5)
函数rep()
rep(1,30)
函数sequence(),创建一系列的整数序列,每个序列都以给定的数值结尾
>sequence(4:5)
[1] 1 2 3 4 1 2 3 4 5
>sequence(c(10,5))
[1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5
函数gl用来生成不同水平/层次数据十分有用。
> gl(3, 5)
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
> gl(2, 6, label=c("Male", "Female"))
[1] Male Male Male Male Male Male
[7] Female Female Female Female Female Female
expand.grid()创建一个数据框,参数有所有组合在一起的向量或者因子
2.4.2随机序列
rnorm(n,mean=0,sd=1)高斯分布的数值
rpois(n,lamda)泊松分布
2.5处理对象
2.5.1创建对象
向量(vector)有两个参数:类型(mode)和长度(length)
因子(factor)
factor(x, levels = sort(unique(x), na.last = TRUE),
labels = levels, exclude = NA, ordered = is.ordered(x))
矩阵(Matrix),实际上是有一个附加属性(维数dim)的向量,byrow=TRUE是按照行填充,可以通过dimnames给行或者是列命名。创建矩阵的另一种方法是给维数适当赋值。dim()<-c()
Dataframe(数据框),数据框中的向量必须有相同的长度,如果有一个较短的话,将循环至相同的长度。
列表(list)可以用list函数创建,方法与创建数据框类似。
时间序列函数ts,函数ts可以由向量(一元时间序列)或者矩阵(多元时间序列)创建ts型对象,可以创建年份表。
表达式是很有意义的字符序列。表达式可以在其他地方用来添加方程式。eval()对创建的表达式进行审核。
2.5.2转换对象
转换遵循一些很直观的规则
数值型因子转换为一个数值型向量并保持最初的指定的水平值,就必须先转换成字符型然后再转换成数值型。
2.5.3算子(常用的算式)
?Sntax命令得到描述算子之间的优先顺序表,切记S是大写。
identical和all.equal是整体比较函数
2.5.4访问一个对象的数值:下标系统
> x <- 1:5
> x[3]
下标本身也是一个数值型向量:
> x
[1] 1 2 20 4 5
> i <- c(1, 3)
> x[i]
[1] 1 20
i行和j列用[i,j]访问矩阵,还有这三中格式x[i, j, k], x[, , 3], x[, , 3, drop = FALSE],牢记drop的使用规则。
使用负数下标用来不显示一个或一些行或者列x[-c(1,15),]表示不显示第1到第15行
> x <- 1:10
> x[x >= 5] <- 20
> x
[1] 1 2 3 4 20 20 20 20 20 20
> x[x == 1] <- 25
> x
[1] 25 2 3 4 20 20 20 20 20 20
2.5.5访问对象的名称
利用names函数,和对象有相同的长度的向量。
数据框和矩阵利用colnames和rownames分别是列和行的标签。dimnames同时访问行和列的名字。
DF["X"]访问数据框中X变量=DF$X
2.5.6数据编辑器
data.entry(x)打开图形编辑器进行修改
2.5.7数学运算和一些简单的函数
函数c是用来连接列在圆括号中的对象。
不同长度的向量可以相加,这种情况下最短的向量将被循环使用。
> x <- 1:4
> y <- 1:2
> z <- x + y
> z
[1] 2 4 4 6
2.5.8矩阵计算
函数rbind()和cbind()分别对矩阵添加行和列
矩阵乘积的算子利用%*%
矩阵和数据框的转置有函数t完成
第三章:用R绘图
3.1.管理绘图
3.1.1打开多个绘图装置
Windows下称为windows,?device可以用来查看绘图装置列表。
3.1.2图形的分割
函数split.screen(c(1,2))分割当前的绘图装置
主要是layout的运用.?layout()查看帮助文档
3.2绘图函数
add=FALSE 如果是TRUE,叠加图形与前一个图
axes=TRUE 如果是FALSE,不绘制轴与边框
type="p"指定图形的类型,"p":点,"l":线,"b":是点连线,"o":线在点上
xlim=,ylim= 指定轴的上下限
xlab=,ylab= 轴的注释,必须是可变的字符模式
main= 主标题,必须是可变的字符模式
sub= 子标题(用小字体)
3.3低水平绘图命令
R里面的作用于现存的图形上的:称为低水平的作图命令
mtext(text,side=3,line=0),在页边空白用text添加文字,用side来表示位置,side=1底端,side=2左边,side=3顶端,side=4在右边添加
3.4绘图参数
绘图参数的查询可以用?par来查询。R语言中查看颜色的列表的函数colors()
主要是tcl和tck函数的使用,以及col和bg的区别,las函数的使用
3.6 grid和lattice包的使用
grid和lattice包实现网格和格子系统。
第四章:R的统计分析
stats包包括了一些列基本的统计分析函数。
4.1关于方差分析的一个简单例子
在stats包中方差分析函数是aov.函数aov的主要参数是一个公式,公式左边是响应变量,右边是预测变量,二者通过~连接。
函数print可以对结果进行一个简单的分析。函数summary可以显示更多的细节。并且可以通过plot()和termplot()展示分析结果的统计图。
opar<-par()
par(mfcol=c(2,2)
可以将作图结果展示为2行2列,类似于layout()
4.2公式
公式的典型形式是y~model,其中y是响应变量,model是一些元素项的集合而且其中有些参数就是将要被估计的
4.3泛型函数
我们用来解析结果的函数对特定的类对象有特定的行为,这些函数被称为泛型。
最常用的解析统计分析结果的R函数是summary.
查看函数返回对象的结构可以用eg:str(aov.spary,max.level=-1)
另外一种查看对象的结构的方法是现实对象各个元素的名字:
names(aov.spary)
4.4包
一个包中可以使用的函数可以通过下面的方式显示:
library(help=grid)
在windows系统中,程序Rgui.exe有一个"packages"菜单,它允许通过网络或者本地的压缩文件直接安装
第五章:R编程实践
5.1循环和向量化
有多个‘apply’形式的函数用于避免使用代码的显示循环结构。apply作用于矩阵的行或者和列。apply(x,MARGIN,FUN,...)。
lapply()可以用于一个列表的对象:语法类似apply并且返回一个列表的对象
5.2用R写程序
for循环或者是while等其他循环
5.3编写自己的函数
大多数R的工作是通过函数实现的,编写自己的函数可以更有效的、灵活的和合理的使用R。
如果希望一些函数在R启动时就被载入,可以把他们的保存在工作目录下面的文件.RData中。(详见?Startup for details)
在R里面没有必要在一个函数里面对变量声明.
> foo <- function() print(x)
> x <- 1
> foo()
[1] 1
第六章:R相关的文献
手册。在目录R_HOME/doc/manual/下面有几份R安装时分发的手册:
• R导论 [R-intro.pdf],
• R 安装和管理 [R-admin.pdf],
• R 数据导入/导出 [R-data.pdf],
• 编写R扩展 [R-exts.pdf],
• R 语言定义 [R-lang.pdf].
在文件夹中还有一个FAQ的文档,记录的是常见的问题集
http://cran.r-project.org/doc/FAQ/R-FAQ.html
本学习主要参考简单做的学习笔记:
R Development Core Team (2005). R: A language and environmentfor statistical computing. R Foundation for StatisticalComputing, Vienna, Austria. ISBN 3-900051-07-0, URL:http://www.R-project.org.