kl800.com省心范文网

R软件的使用及统计应用


R软件的使用及统计应用

赵洪波
zhao.hongbo@hotmail.com

R 简介

2

什么是R?
The R Project for Statistical Computing

R首页的图形 ?R是一种统计绘图语言,也指实现该语言的软件。
3

简 史
R语言是从S统计绘图语言演变而来,可看作S的“方言”。 S语言上世纪70年代诞生于贝尔实验室,由Rick Becker, John Chambers, Allan Wilks开发。 基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型, 具有良好的扩展性,在国外学术界应用很广。 1995年由新西兰Auckland大学统计系的Robert Gentleman和Ross Ihaka,基于S语言的源代码,编写了一能执行S语言的软件,并将该软件 的源代码全部公开,这就是R软件,其命令统称为R语言。

4

简 史

Ross Ihaka

Robert Gentleman
5

R的特点
多领域的统计资源 目前在R网站上约有2500个程序包,涵盖了基础统计学、社会学、 经济学、生态学、空间分析、系统发育分析、生物信息学等诸多方面。 跨平台 R可在多种操作系统下运行,如Windows、MacOS、多种Linux和 UNIX等。 命令行驱动 R即时解释,输入命令,即可获得相应的结果。

6

为什么选择R?
? 丰富的资源 涵盖了多种行业数据分析中几乎所有的方法。 ? 良好的扩展性 十分方便得编写函数和程序包,跨平台,可以胜任复杂的数据分析、 绘制精美的图形。 ? 完备的帮助系统 每个函数都有统一格式的帮助,运行实例。 ? GNU软件 免费、软件本身及程序包的源代码公开。
7

R与其他统计软件比较
? SAS: 速度快,有大量统计分析模块,可扩展性稍差,昂贵。 ? SPSS: 复杂的用户图形界面,简单易学,但编程十分困难。 ? Splus: 运行S语言,具有复杂的界面,与R完全兼容,昂贵。 ……

8

R的缺点
? 用户需要对命令熟悉 与代码打交道,需要记住常用命令。 ? 占用内存 所有的数据处理在内存中进行,不适于处理超大规模的数据。 ? 运行速度稍慢 即时编译,约相当于C语言的1/20。 ? 相比点击鼠标进行操作,R仍能够大大提高效率。

9

R 的获取

10

R软件首页 http://www.r-project.org/
11

CRAN
The Comprehensive R Archive Network 简称CRAN,由世界几十个镜像网站组成网络,提供下载安装程序和相应软件包。各镜像 更新频率一般为1-2天 推荐镜像: 中国的镜像: http://ftp.ctex.org/mirrors/CRAN/ CTEX.ORG http://mirror.bjtu.edu.cn/cran Beijing Jiaotong University, Beijing http://cran.dataguru.cn Dataguru (a, Guangzhou http://mirrors.ustc.edu.cn/CRAN/ University of Science and Technology of China http://mirrors.xmu.edu.cn/CRAN/ Xiamen University
12

CRAN

13

Windows下载和安装R
CRAN: Download R for Windows>Windows>base

R 2.15.3下载页面
下载完成后,双击R-2.15.3-win32.exe 开始安装。 一直点击下一步,各选项默认,语言建议选英文。
14

菜单栏 快捷按钮

控制台

光标:等待输入

图 4 R登陆界面(Windows版) 路径: 开始>所有程序>R 2.15.2
15

R 程序包的安装

16

R程序包(R Packages)
程序包是什么? R程序包是多个函数的集合,具有详细的说明和示例。 Window下的R程序包是经过编译的zip包。 每个程序包包含R函数、数据、帮助文件、描述文件等。 为什么要安装程序包? R程序包是R功能扩展,特定的分析功能,需要用相应的程序包实现。 例如:芯片数据分析,常用到aff程序包,limma包等。

17

R程序包(R Packages)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? base The?R?Base?Package boot Bootstrap?R?(S‐Plus)?Functions?(Canty) class Functions?for?Classification cluster Cluster Analysis?Extended?Rousseeuw et?al. concord Concordance?and?reliability datasets The?R?Datasets?Package exactRankTests Exact?Distributions?for?Rank?and?Permutation?Tests foreign Read?Data?Stored?by?Minitab,?S,?SAS,?SPSS,?Stata,?Systat,?dBase,?... graphics The?R?Graphics?Package grDevices The?R?Graphics?Devices?and?Support?for?Colours and?Fonts grid The?Grid?Graphics?Package KernSmooth Functions?for?kernel?smoothing?for?Wand?&?Jones?(1995) lattice Lattice Graphics?Interface tools Tools for?Package?Development utils The?R?Utils Package
18

CRAN Task Views

CRAN Task Views: 对程序包的分类介绍
19

R程序包
? Base, stats包含所有固有的应用和数据 ? 而其他的packages包含各统计学家自己发展的方法和数据。在CRAN 提供了每个包的源代码和编译好的程序包 以ggplot2包为例,CRAN提供了: Package source: ggplot2_0.9.3.1.tar.gz MacOS X binary: ggplot2_0.9.3.1.tgz Windows binary: ggplot2_0.9.3.1.zip Reference manual: ggplot2.pdf Window下程序包为zip文件,安装时不要解压缩。
20

安装程序包的方法
1 用函数 install.packages(), 如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜 像后,程序将自动下载并安装程序包。 例如: 要安装ggplot2包,在控制台中输入 install.packages(“ggplot2") 2 安装本地zip包 路径:Packages>install packages from local files 选择本地磁盘上存储zip包的文件夹。

21

程序包使用
程序包中的函数,都要先导入,再使用,因此导入程序包 是第一步。 在控制台中输入如下命令: library(ggplot2) 程序包内的函数的用法与R内置的基本函数用法一样。

22

查看程序包帮助文件
ggplot2程序包内部都有哪些函数?分别有什么功能? 查询程序包内容最常用的方法: 1 菜单 帮助>Html帮助 2 查看pdf帮助文档

23

查看函数的帮助文件
函数的默认值是什么? 怎么使用? 使用时需要注意什么问 题? 需要查询函数的帮助。 1 ?t.test 2 RGui>Help>Html help 3 apropos("t.test") 4 help("t.test") 5 help.search("t.test") 6 查看R包pdf手册
24

图 11 R帮助文件的内容与格式
25

帮助文件的内容
? lm{stats} #函数名及所在包 ? Fitting Linear Models #标题 ? Description ? Usage ? Arguments ? Details ? Author(s) ? References ? Examples #函数描述 #默认选项 #参数 #详情 #作者 #参考文献 #举例
26

R图形化界面

27

集成开发环境
很多计算机语言都有IDE (integrated development environment),即集 成开发环境,如 Windows的VisualStudio, Visual Basic等等。 但是R通常无需集成开发环境,脚本在一般的文本编辑器里即可编辑。 如 Windows自带的记事本,Notepad++, UltraEdit,TinnR。 Linux下的Vi, Vim, Emacs等等。 在代码较多的情况下,常需要对行数、函数、括号、函数选项等进 行高亮显示,设置成不同的颜色,以减少错误的发生。

28

编辑器
R自带的脚本编辑器 RStudio(http://www.rstudio.com/ ) Editplus (www.editplus.com ) TinnR (http://www.sciviews.org/Tinn-R/ ) Ultraedit (www.ultraedit.com/ ) Emacs (www.gnu.org/software/emacs/ ) Notepad++ 与NpptoR组合 (http://notepad-plus.sourceforge.net/ ) 记事本或写字板 等等
29

R图形界面: RStudio
? RStudio是一个免费的开源的R语言的一体开发环境,可以在桌面机 (Windows\Mac\Linux)多平台运行,也可以在Linux服务器上安装 RStudio服务器,供用户远程云端web使用。
– 1)写R脚本,可用Rscript命令执行 – 2)终端,用于直接输入R命令 – 3)工作区,显示目前的数据和变量等信息 – 4)历史记录,显示之前所执行过的所有命令历史 – 5)文件,显示文件,可以直接点击打开,打开后在1)区显示 – 6)图形界面,可以显示图形 – 7)加载包,可显示目前可用于加载的包和已加载的包 – 8)帮助区,用于显示帮助,如?ls后会在该区显示相关信息
30

图形界面之一:RStudio

RStudio界面 《Getting Started with RStudio》
31

基本操作

32

? > 1+1 [1] 2 ? > sqrt(9) [1] 3 ? > abs(-5) [1] 5

33

> a <- rnorm(1000) > hist(a)

34

赋值与注释
在控制台中键入如下命令 2 + 2 a <- 2

赋值符号
<-也可用=, 甚至->代替 b <- 2 c <- a+b c #注释
35

如何为对象起名?
R处理的所有数据、变量、函数和结果都以对象的形式保存。 1. 区分大小写,注意China和china的不同。 2. 不能用数字作为变量,对象也不能用数字开头,但是数字可以放在 中间或结尾,如2result与result2,后者是合法的。 3. 建议不要用过短的名称。可以用”.”作为间隔,例如 anova.result1。 4. 不要使用保留名: NA, NaN, pi, LETTERS, letters, month.abb, month.name
36

元素的类型
对象是由各元素组成的。每个元素,都有自己的数据类型 数值型 Numeric 字符型 Character 逻辑型 Logical 因子型 Factor 复数型 Complex 如 100, 0, -4.335 如 “China” 如TRUE, FALSE 表示不同类别 如:2 + 3i

37

> a <- 49 > sqrt(a) [1] 7

数值 numeric 字符串 character string

> b <- "The dog ate my homework" > sub("dog","cat",b) [1] "The cat ate my homework" > x <- (1+1==3) > x [1] FALSE

逻辑 logical

38

对象的类(class)
向量(vector) 一系列元素的组合。 如 c(1,2,3); c("a","a","b","b","c") 因子(factor) 因子是一个分类变量 c("a","a","b","b","c") 矩阵(matrix) 二维的数据表,是数组的一个特例 x <- 1:12 ; dim(x) <- c(3,4)

[,1] [,2] [,3] [,4] [1,] [2,] [3,] 1 2 3 4 5 6 7 8 9 10 11 12
39

对象的类
数组(array) 数组是k维的数据表(k in 1:n, n 为正整数)。 向量(n = 1) 矩阵(n = 2) 高维数组(n >= 3) 数据框(dataframe) 是由一个或几个向量和(或)因子构成,它们必须是等长的,但可 以是不同的数据类型。 列表(list) 列表可以包含任何类型的对象。 可以包含向量、矩阵、高维数组,也可以包含列表
40

运算符
数学运算 运算后给出数值结果 +, -, *, /, ^ (幂) 比较运算 运算后给出判别结果(TRUE FALSE) >, <, <=, >=, ==, != 逻辑运算 与、或、非 !, &, &&, |, ||

41

缺失值
NA 或 “Not Available” 可用在許多模式 (modes) – character, numeric, etc. NaN 或 “Not a Number” 只用在數值模式 (numeric modes) NULL 列表 (lists) 的長度為 0 (zero length)

42

缺失值
? NA “not available”
> x <- c(1, 2, 3, NA) > x + 3 [1] 4 5 6 NA

? 任何与NA的计算,可能或不可能产生NA
> 1 + NA [1] NA > max(c(NA, 4, 7)) [1] NA > max(c(NA, 4, 7), na.rm=T) [1] 7
43

数据表的行与列
表1 数据表、数据框与向量 年龄 赵 钱 孙 李 周 40 51 46 38 49 体重 75 63 80 70 72 身高 172 168 180 176 165 血糖 4.6 3.8 5.2 4.5 7.2 TG 2.5 2.7 2.1 1.4 1.8 家乡 云南 云南 广西 江西 贵州 每行作 为一个 Entry 列名 Column names

行名Row names 每列可看做带名称的 字符串 向量

字符串、因子
44

数据框的组成
? 每个数据表可以看作一个数据框(dataframe)。 ? 每一列(column)作为一个向量(vector)。 ? 由很多不同类型的向量组成,如字符型,因子型,数值型。 ? 每一行(row)作为一个记录(entry) ? 如何生成数据框? ? 两种办法: ? ? (1)从外部数据读取 (2)各类型因子组合成数据框
45

向量的创建
四种类型的向量 字符型 character<-c("China", "Korea", "Japan", "UK", "USA", "France", "India", "Russia") 数值型 numeric<-c(1, 3, 6, 7, 3, 8, 6, 4) 逻辑型 logical<-c(T, F, T, F, T, F, F, T) 复数型 略
46

向量的创建
生成向量的函数 c(),rep(),seq(),”:” c(2,5,6,9) rep(2,times=4) seq(from=3, to=21, by=3 ) [1] “:” 1:15 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 6 9 12 15 18 21

通过与向量的组合,产生更为复杂的向量。 rep(1:2,c(10,15))
47

向量创建——产生随机数
runif(10, min = 0, max= 1) rnorm(10, mean = 0, sd = 1) 几个随机数的相关函数 概率密度 累积函数 分位数 随机均匀分布 dunif(x, min=0, max=1, log = FALSE) punif(q, min=0, max=1, …) qunif(p, min=0, max=1, …) runif(n, min=0, max=1)

48

矩阵的创建
生成矩阵的函数 dim()和matrix() dim() 定义矩阵的行列数,例如: x <- 1:12 dim(x) <- c(3,4) [,1] [,2] [,3] [,4] [1,] [2,] [3,] 1 2 3 4 5 6 7 8 9 10 11 12

matrix.x <- matrix(1:12,nrow=3,byrow=T) t(x)#转置 为行或列添加名称:row.names() col.names()
49

向量、矩阵
? 向量
> >x x <<- c(6,5,4,3,2,1) c(6,5,4,3,2,1) > >x x [1] [1] 6 65 54 43 32 21 1 > sum(x) > sum(x) [1] [1] 21 21 > > x[c(1,3,5 x[c(1,3,5 [1] [1] 6 64 42 2 > x <6:1 > x <- 6:1 > >x x [1] [1] 6 65 54 43 32 21 1 > x[1:3] > x[1:3] [1] [1] 6 65 54 4 > x[1:3]+x[6:4] > x[1:3]+x[6:4] [1] [1] 7 77 77 7 > y <c(0,10) > y <- c(0,10) > > x+y x+y [1] [1] 6 6 15 15 4 4 13 13 2 2 11 11

? 矩阵
> >x x <<- matrix(1:18, matrix(1:18, nrow=3) nrow=3) > x > x [,1] [,1] [,2] [,2] [,3] [,3] [,4] [,4] [,5] [,5] [,6] [,6] [1,] 1 4 7 [1,] 1 4 7 10 10 13 13 16 16 [2,] 2 5 8 [2,] 2 5 8 11 11 14 14 17 17 [3,] 3 6 9 12 15 18 [3,] 3 6 9 12 15 18 > x[,3] > x[,3] [1] [1] 7 78 89 9 > > x[-1,4:6] x[-1,4:6] [,1] [,1] [,2] [,2] [,3] [,3] [1,] 11 14 [1,] 11 14 17 17 [2,] 12 15 18 [2,] 12 15 18

50

向量、矩阵缺失值自动补齐
? 向量
> >x x <<- 7:1 7:1 > x > x [1] [1] 7 76 65 54 43 32 21 1 > >y y <<- 1:3 1:3 > y > y [1] [1] 1 12 23 3 > x + y > x + y [1] [1] 8 88 88 85 55 55 52 2

? 矩阵
> >x x <<- matrix(1:16, matrix(1:16, nrow=3) nrow=3) Warning message: Warning message: Replacement Replacement length length not not a a multiple multiple of of the the elements elements to to replace replace in in matrix(...) matrix(...) > >x x [,1] [,1] [,2] [,2] [,3] [,3] [,4] [,4] [,5] [,5] [,6] [,6] [1,] 1 4 7 10 13 [1,] 1 4 7 10 13 16 16 [2,] 2 5 8 1 [2,] 2 5 8 11 11 14 14 1 [3,] 3 6 9 12 15 2 [3,] 3 6 9 12 15 2 > y <c(-1,1) > y <- c(-1,1) # # Multiply Multiply (“moving (“moving down down the the columns”) columns”) > >x x* *y y [,1] [,1] [,2] [,2] [,3] [,3] [,4] [,4] [,5] [,5] [,6] [,6] [1,] -1 4 -7 10 -13 [1,] -1 4 -7 10 -13 16 16 [2,] 2 -5 8 -11 14 -1 [2,] 2 -5 8 -11 14 -1 [3,] -3 6 -9 12 -15 2 [3,] -3 6 -9 12 -15 2 51

R will expand the shortest vector before adding!

加上变量名称
? 向量
> >x x <<- c(87,76.3,1.67) c(87,76.3,1.67) > x > x [1] [1] 87.0 87.0 76.3 76.3 1.67 1.67 > > names(x) names(x) <<- c(“age”, c(“age”, “weight”, “weight”, “height”) “height”) > >x x age age weight weight height height 87.0 76.3 87.0 76.3 1.67 1.67 # Alternatively # Alternatively > >x x <<- c(age=87, c(age=87, weight=76.3, weight=76.3, height=1.67) height=1.67)

? 计算
> > x[“age”] x[“age”] [1] [1] 87.0 87.0 > bmi > bmi <<- x[“weight”]/x[“height”]^2 x[“weight”]/x[“height”]^2

? 比较

> > x[1] x[1] [1] [1] 87.0 87.0 > > bmi bmi <<- x[2]/x[3]^2 x[2]/x[3]^2

52

加上变量名称
? 矩阵
> > > > x1 <- c(87,76.3,1.67) x2 <- c(78,96.3,1.84) x3 <- c(45,62.9,1.54) x <- matrix(c(x1,x2,x3), nrow=3, byrow=TRUE) > x [,1] [,2] [,3] [1,] 87 76.3 1.67 [2,] 78 96.3 1.84 [3,] 45 62.9 1.54 > colnames(x) <- c("age", "weight", "height") > rownames(x) <- c(“jon”, “kim”, “dan”) > x age weight height jon 87 76.3 1.67 kim 78 96.3 1.84 dan 45 62.9 1.54 > x[“jon”,] age weight height 87.00 76.30 1.67 > x[,c("weight","age")] weight age jon 76.3 87 kim 96.3 78 dan 62.9 45 > bmi <x[,"weight"]/x[,"height"]^2 > bmi jon kim dan 27.35846 28.44400 26.52218
53

数据框的创建
创建数据框的函数:data.frame(), as.data.frame(), cbind(), rbind()

cbind() # 按列组合成数据框 rbind() # 按行组合成数据框 data.frame() #生成数据框 head() #默认访问数据的前6行

54

列表的创建
列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等 等)、数据框甚至是列表的组合。与向量相对应,但元素类型不必相同。 list() 例如 list(character,numeric,logical,matrix.x)

55

类的判断
对象类型判断 mode() 判断存储的类型 class() 判断数据的类 根据数据的类,采用相应的处理方法。 以下函数,主要用在函数处理异常时使用,目的是增强程序的稳健性。 is.numeric() #返回值为TRUE或FALSE is.logical() #是否为逻辑值 is.charactor() #是否为字符串 is.null() #是否为空 is.na() #是否为na
56

类的转换
as.numeric() #转换为数值型 as.logical() #转换为逻辑型 as.charactor() #转换为字符串 as.matrix() #转换为矩阵 as.data.frame() #转换为数据框 as.factor() #转换为因子

57

向量内的元素引用
### Dalgaard书中的例子 intake.pre <- c(5260, 5470, 5640, 6180, 6390, 6515, 6805, 7515, 7515, 8230, 8770) intake.post <- c(3910, 4220, 3885, 5160, 5645, 4680, 5265, 5975, 6790, 6900, 7335) intake.pre[5]; intake.pre[c(3,5,7)] #引用第5个元素 #引用第3,5,7个元素

v <- c(3,5,7); intake.pre[v]; intake.pre[1:5]; intake.pre[-c(3,5,7)] #引用第1到5个元素 #去除第3,5,7元素
58

数据框内元素的引用
intake <- data.frame(intake.pre, intake.post) 引用数据框中的元素 (1) $ 引用列,后面为列的名称 例如 intake$intake.pre (2) [,]方括号引用,逗号前为行,逗号后为列 intake[,1]; intake[5,]; intake[5,1]; i = 1:5; intake[i,] 引用第1列 引用第5行 引用第1列,第5行 引用1到5行
59

列表内元素的引用
列表内元素的引用可以用”[[]]” 如 list1[[c(1,2,3)]] 上述放于”[]”内的数字,称为下标。通过下标的变化,可以方便的访问 向量、数据框、矩阵、列表内的各元素。熟悉下标的用法对掌握循环 结构是非常重要的。
mylist = list(c(1,4,6),"dog",3,"cat",TRUE,c(9,10,11)) mylist sapply(mylist, mode)

60

访问数据框内的元素
直接调用数据框内的列,以列的名称作为向量的名称 attatch() detatch() 在函数内部,对数据进行相应调整 with() #with函数内部形成一个空间,在这个空间中,函数可以对 列访问。 within() transform() #数据的转换,如取log subset() #取数据的子集 apply() #对数据表或矩阵应用某个函数,可减少循环
61

条件筛选
条件筛选是先对变量否满足条件进行判断,满足为TRUE,不满足为 FALSE。之后再用逻辑值对向量内的元素进行筛选。 intake.pre > 7000 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE

intake.pre[intake.pre > 7000] intake.pre > 7000 & intake.pre <= 8000 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE

intake.post[intake.pre > 7000 & intake.pre <= 8000] 62

外部数据读取

63

外部数据读取
最为常用的数据读取方式是用read.table() 函数或 read.csv()函数读取外部txt或csv格式的文件。 txt文件,制表符间隔 csv文件,逗号间隔 一些R程序包(如foreign)也提供了直接读取Excel, SAS, dbf, Matlab, spss, systat, Minitab文件的函数。

64

read.csv()的使用
例:test.data<-read.csv("D:/R/test2.csv",header=T) header=T表示将数据的第一行作为标题。 read.table(file=file.choose(),header=T) 可以弹出对话 框,选择文件。

65

例:从数据输入到t检验
现有6名患者的身高和体重,检验体重除以身高的平方是否等于22.5。

表2 六名患者的身高和体重

编号 身高 m 体重kg

1 1.75 60

2 1.80 72

3 1.65 57

4 1.90 90

5 1.74 95

6 1.91 72

66

第一种方式:从控制台输入数据
数据量较少时可以从控制台直接输入: height<-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) weight<-c(60, 72, 57, 90, 95, 72) sq.height<-height^2 ratio<-weight/sq.height t.test(ratio, mu=22.5)

67

第二种方式 从外部读取数据
数据量较大时用read.table函数从外部txt文件读取 第1步 式。 第2步 用read.table()或read.csv()函数将数据读入R工作空间, 并赋值给一个对象。 将Excel中的数据另存为.txt格式(制表符间隔)或.csv格

68

例:t检验(续)
一般从txt文档读取数据。每一行作为一个观测值。每一行的变量用制表 符,空格或逗号间隔开。 read.table(”位置”, header=T) read.csv(”位置”,header=T) #从外部读取数据 data1<-read.table("d:/t.test.data.txt",header=T) bmi<- data1$weight/data1$height^2 t.test(bmi, mu=22.5) #t检验

69

数据描述性分析

70

均值
? mean (x, trim=0, na.rm=FALSE) ? x是对象(如向量,矩阵,数组或数据框),trim是计算均值前去掉 与均值差较大数据的比例,缺省值为0,即包括全部数据。 ? 当na.rm = TRUE是,允许数据中有缺失数据。 ? 例:已知15为学生的体重(单位:千克) 75.0 64.0 47.4 66.9 62.2 62.2 58.7 63.5 66.6 64.0 57.0 69.0 56.9 50.0 72.0 ? w <c(75.0,64.0,47.4,66.9,62.2,58.7,63.5,66.6,64.0,57. 0,69.0,56.9,50.0,72.0) ? w.mean <- mean(w)

71

均值
? 注意:当x是矩阵(或数组)时,函数mean()的返回值,并不是向 量,而是一个数,即举证中全部数据的平均值。 ? x <- 1:12 ? dim(x)<-c(3,4) ? mean(x) [1] 6.5 ? apply(x,1,mean) [1] 5.5 6.5 7.5 ? apply(x,2,mean) ? [1] 2 5 8 11

72

均值
? 如果x是数据框,则mean()的返回值就是向量。 ? mean(as.data.frame(x)) V1 V2 V3 V4 2 5 8 11 ? 是按列求平均值 ? 中位数(median):数据排序位于中间位置的值。median

73

分散程度
? 表述数据分散(或变异)程度的特征量有方差、标准差、变异系数等。 ? 函数: 方差 标准差 变异系数 var sd cv<-100*sd(w)/mean(w)

74

求和
? sum(…, na.rm=False) 如果x是向量,函数length(x)的返回值是向量x的长度(维数) mean <- sum(w)/length(w) mean [1]62.37

75

R绘图

76

R绘制的图形
77

绘制地图

?

左图 maps包

map()右图 PBSmapping包 addBubbles()
78

绘制地图

? fields 包实例

spdep 包实例
79

空间分析绘图

gstat程序包实例

80

R绘图功能
R具备卓越的绘图功能,通过参数设置对图形进行精确控制。绘制 的图形能满足出版印刷的要求,可以输出Jpg、tiff、eps、emf、pdf、 png等各种格式。 通过与GhostScript软件的结合,可以生成600dpi,1200dpi的等各种 分辨率和尺寸的图形。 绘图是通过绘图函数结合相应的选项完成的。 绘图函数包括高级绘图函数和低级绘图函数。

81

高级绘图函数
plot() hist() boxplot() stripchart() barplot() dotplot() piechart() matplot() 绘制散点图等多种图形,根据数据的类,调 用相应的函数绘图 频率直方图 箱线图 点图 柱状图 点图 饼图 数学图形

82

散点图与箱线图
83

低级绘图函数
lines() curve() abline() points() segments() arrows() axis() box() title() text() mtext() 添加线 添加曲线 添加给定斜率的线 添加点 折线 箭头 坐标轴 外框 标题 文字 图边文字
84

绘图参数
参数用在函数内部,在没有设定值时使用默认值。 font = 字体,lty = 线类型,lwd = 线宽度,pch = 点的类型, xlab = 横坐标,ylab = 纵坐标, xlim = 横坐标范围, ylim = 纵坐标范围, 也可以对整个要绘制图形的各种参数进行设定 参见 par()

85

举例:绘图
生成0到2之间的50个随机数,分别命名为x,y x <- runif(50,0,2) y <- runif(50,0,2) 绘图:将主标题命名为“散点图”, 横轴命名为”横坐标”, 纵 轴命名为“纵坐标” plot(x, y, main="散点图", xlab="横坐标", ylab="纵 坐标") text(0.6,0.6,"text at (0.6,0.6)") abline(h=.6,v=.6)
86

绘图举例

87

例:分步绘图
1.打开绘图窗口,不绘制任何对象 plot(x, y, type="n", xlab="", ylab="", axes=F) 2.添加坐标点 3.添加坐标轴 axis(1); axis(at=seq(0.2,1.8,0.2), side=2) 4.补齐散点图的边框 box() points(x,y)

5.添加标题、副标题、横轴说明、纵轴说明 title(main="Main title", sub="subtitle", xlab="xlabel", ylab="y-label")
88

1

2

3

4

5 分步绘图

6
89

一页多图
一页多图 par() par(mfrow=c(2,2) ...

90

在原有图形上添加元素
举例: x <- rnorm(100) hist(x,freq=F) curve(dnorm(x),add=T) h <- hist(x, plot=F) # 生成随机数 # 绘制直方图 # 添加曲线 # 绘制直方图

ylim <- range(0, h$density, dnorm(0)) #设定纵轴的取值范围 hist(x, freq=F, ylim=ylim) #绘制直方图 curve(dnorm(x),add=T,col="red") #添加曲线
91

在原有直方图上添加曲线
92

箱线图
? x<c(25,45,50,54,55,61,64,68,72,75,75,78,79,81,83,84, 84,84,85,86,86,86,87,89,89,89,80,81,81,82,100) boxplot(x) ? 上(Q3)下(Q1)四分位数 中间粗线为中位数
触须
100 40 60 80

93

函数与对象

94

R的函数
R是一种解释性语言,输入后可直接给出结果。 功能靠函数实现。 函数形式: 函数(输入数据,参数= ) 如果没有指定,则参数的以默认值为准。 例如: 平均值 mean(x, trim = 0, na.rm = FALSE, ...) 线性模型 lm(y~x, data=test)

95

R的函数
每一个函数执行特定的功能,后面紧跟括号,例如: 平均值 求和 绘图 排序 mean() sum() plot() sort()

除了基本的运算之外,R的函数又分为”高级”和”低级”函数,高 级函数可调用低级函数,这里的”高级”函数习惯上称为泛型函数。 如plot()就是泛型函数,可以根据数据的类型,调用底层的函 数,应用相应的方法绘制相应的图形。这就是面向对象编程的思想。
96

R有哪些函数?
查询的方法:Help>Html help>packages log() log10() exp() sin() cos() tan() asin() acos() binom.test() fisher.test() chisq.test() glm(y ~ x1+x2+x3, binomial) friedman.test() mean() sd() var()
97

R函数调用及其选项

箱线图修饰前后(左:默认值,右:修改属性后) 函数的调用方法, 函数名() 如 plot(), lm(),并将对象放入括号 中。
98

R函数调用及其选项
箱线图绘制函数的调用 boxplot(day~type, data=bac, col="red", xlab="Virus", ylab="days") day~type,以type为横轴,day为纵轴绘制箱线图。 data=bac col=“red” xlab=“Virus” ylab=“days” 数据来源bac 箱线图为红色 横轴名称为Virus 纵轴名称为days
99

排 序
将向量中的元素按照一定顺序排列。 sort() 按数值大小排序 举例: intake$intake.pre sort(intake$intake.pre)

order() 默认给出从小到大的出现序号。 order(intake$post) o <- intake[order(intake$intake.pre),]
100

工作空间image
R的所有对象都在计算机内存的工作空间中。 ls() 列出工作空间中的对象 rm() 删除工作空间中的对象 rm(list=ls()) 删除空间中所有对象 save.image() 保存工作镜像 sink() 将运行结果保存到指定文件中 getwd() 显示当前工作文件夹 setwd() 设定工作文件夹 可将结果保存在image中,形式为.Rdata文件,里面保存了R当
101

前工作空间中的各种对象,包括函数。

输入历史 history
? 输入的命令,在R中作为历史history保存,可输入函数 ? history() ? history(Inf) # 查看输入历史 # 查看打开R之后所有的输入

? 可用向上或向下的箭头切换输入的行。

102

线性回归
?

对一批涂料进行研究,确定搅拌速度对杂质含量的影响,数据如下, 试进行回归分析

表 搅拌速度对涂料中杂质的影响
转速 rpm 20 22 9.5 24 26 28 30 32 34 36 38 40 42

杂质率 8.4 %

11.8 10.4 13.3 14.8 13.2 14.7 16.4 16.5 18.9 18.5

103

脚本举例
#将以下代码粘贴到编辑器中,另存为regression.r文件。 rate<-c(20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42) impurity <-c(8.4, 9.5, 11.8, 10.4, 13.3, 14.8, 13.2, 14.7, 16.4, 16.5, 18.9, 18.5) plot(impurity~rate) reg<-lm(impurity~rate) abline(reg,col="red") summary(reg)
104

运行脚本
三种运行方式 1 通过source()函数运行 source("d:/regression.r") 2 通过R脚本编辑器运行 路径:RGui>File>Open Script #Ctrl+R运行 3 直接粘贴到R控制台 ctrl+c, ctrl+v 第三种最为简单直接
105

卡方检验
? 卡方检验是用途很广的一种假设检验方法,它在分类资料统计推断中 的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个 构成比比较的卡方检验以及分类资料的相关分析等。
处理 甲组 乙组 合计 发癌数 52 39 91 未发癌数 19 3 22 合计 71 42 113 发癌率% 73.24 92.86 80.33

又被称之为四格表资料。卡方检验的统计量是卡方值,它是每个格子实际 频数A与理论频数T差值平方与理论频数之比的累计和。每个格子中的理论 频数T是在假定两组的发癌率相等(均等于两组合计的发癌率)的情况下 计算出来的,如第一行第一列的理论频数为71*(91/113)=57.18,故卡 方值越大,说明实际频数与理论频数的差别越明显,两组发癌率不同的可 能性越大。
106

卡方检验
? 例:为了研究吸烟是否和患肺癌有关,对63位肺癌患者及 43名非肺癌患者(对照组)调查了其中的吸烟人数,得到 2×2列联表

107

卡方检验
> x<-c(60, 3, 32, 11) > dim(x)<-c(2,2) > chisq.test(x,correct = FALSE) Pearson’s Chi-squared test data: x X-squared = 9.6636, df = 1, p-value = 0.001880 连续校正:

> chisq.test(x) Pearson’s Chi-squared test with Yates’ continuity correction data: x X-squared = 7.9327, df = 1, p-value = 0.004855

108

Fisher检验
? 当样本较小时(单元的期望频数小于4),需要用Fisher 精确检验来做独立性检验。 ? 例: 某医师为研究乙肝免疫球蛋白预防胎儿宫内感染HBV的效 果,将33例HBsAg阳性孕妇随机分为预防注射组和对照组。 问两组新生儿的HBV总体感染率有无差别?

109

Fisher检验
> x<-c(4,5,18,6); dim(x)<-c(2,2) > fisher.test(x) Fisher's Exact Test for Count Data data: x p-value = 0.121 alternative hypothesis: true odds ratio is not equal to 1 95 percent confidence interval: 0.03974151 1.76726409 sample estimates: odds ratio 0.2791061
110

回归分析
? 回归分析(regression analysis)是确定两种或两种以上变 数间相互依赖的定量关系的一种统计分析方法。 ? 回归分析按照涉及的自变量的多少,可分为一元回归分析 和多元回归分析 ? 按照自变量和因变量之间的关系类型,可分为线性回归分 析和非线性回归分析。 ? 如果在回归分析中,只包括一个自变量和一个因变量,且 二者的关系可用一条直线近似表示,这种回归分析称为一 元线性回归分析。 ? 如果回归分析中包括两个或两个以上的自变量,且因变量 和自变量之间是线性关系,则称为多元线性回归分析。
111

回归分析
? 回归分析的主要内容为:
①从一组数据出发确定某些变量之间的定量关系式,即建立数学模型 并估计其中的未知参数。估计参数的常用方法是最小二乘法。 ②对这些关系式的可信程度进行检验。 ③在许多自变量共同影响着一个因变量的关系中,判断哪个(或哪些) 自变量的影响是显著的,哪些自变量的影响是不显著的,将影响显著 的自变量选入模型中,而剔除影响不显著的变量,通常用逐步回归、 向前回归和向后回归等方法。 ④利用所求的关系式对某一生产过程进行预测或控制。回归分析的应 用是非常广泛的,统计软件包使各种回归方法计算十分方便。

? http://baike.baidu.com/view/145440.htm(百度百科)

112

回归分析
? 合金的强度Y(kg/mm2)与合金中碳含量X(%)有关,为了解 它们之间的关系,从生产中收集了一批数据:

113

回归分析
x=matrix(c(0.1,42,0.11,43,0.12,45,0.13,45,0.14,45,0. 15,47.5,0.16,49,0.17,53,0.18,50,0.2,55,0.21,55,0.2 3,60),nrow=12,ncol=2,byrow=T,dimnames=list(1:12,c( "C","E"))) outputcost=as.data.frame(x) plot(outputcost$C,outputcost$E) lm.sol = lm(E~C,data = outputcost) summary(lm.sol) ? 第一行是输入自变量x,第二行是输入因变量y,第三行函数lm()表 示作线性模型,其模型公式y~1+x表示 y ? ? 0 ? ?1 x ? ? 第四行函数summary()提取模型的计算结果。

114

回归分析
Call: lm(formula = E ~ C, data = outputcost) Residuals: Min 1Q Median -2.00449 -0.63600 -0.02401

3Q 0.71297

Max 2.32451

Coefficients: Estimate Std. Error t value (Intercept) 28.083 1.567 17.92 C 132.899 9.606 13.84 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01

Pr(>|t|) 6.27e-09 *** 7.59e-08 *** ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.309 on 10 degrees of freedom Multiple R-squared: 0.9503, Adjusted R-squared: 0.9454 F-statistic: 191.4 on 1 and 10 DF, p-value: 7.585e-08

115

回归分析
分析残差 y.res=residuals(lm.sol); plot(y.res)

116

回归分析
从残差图可以看出,第8个点有些反常,这样我们用程序将 第8个点的残差标出,程序如下: >text(8,y.res[8],labels=8,adj=1.2)

8 2 y.res -2 -1 0 1

2

4

6 Index

8

10

12

117

回归分析
下面做简单处理,去掉该样本点,编程如下: i=1:12; outputcost2=as.data.frame(x[i!=8,]) lm2=lm(E~C,data=outputcost2) summary(lm2) 得到回归方程: y=28.124+131.293x
http://wenku.baidu.com/view/e94d7fe8856a561252d 36f69.html
118

多元回归
在回归分析中,如果有两个或两个以上的自变量,就称为 多元回归。事实上,一种现象常常是与多个因素相联系 的,由多个自变量的最优组合共同来预测或估计因变量, 比只用一个自变量进行预测或估计更有效,更符合实际。 因此多元线性回归比一元线性回归的实用意义更大。

y ? ? 0 ? ?1 x ? ? ? ? ? ? p x p?

119

相关
相关分析(correlation analysis),相关分析是研 究现象之间是否存在某种依存关系,并对具体有依存关系 的现象探讨其相关方向以及相关程度,是研究随机变量之 间的相关关系的一种统计方法。 cor() cov()

120

方差分析
方差分析(Analysis of Variance,简称ANOVA),又称 “变异数分析”或“F检验”,是R.A.Fisher发明的,用于两 个及两个以上样本均数差别的显著性检验。由于各种因素的 影响,研究所得的数据呈现波动状。造成波动的原因可分成 两类,一是不可控的随机因素,另一是研究中施加的对结果 形成影响的可控因素。

121

方差分析
方差分析的三个条件 1 可加性 假设模型是线性可加模型,每个处理效应与随机误差是可以 叠加的; 2 独立正态性 试验误差应当服从正态分布,而其相互独立; 3 方差齐性,不同处理间的方差是一致的。

若不满足,则用非参数统计方法。

122

方差分析
? 考察方差齐次性(用bartlett检验) bartlett.test() ? 正态性检验 shapiro.test() ? 多重比较 TukeyHSD()

123

单因素方差分析
四种不同配方材料A1,A2,A3,A4生产出的原件,寿命如下表,问:四种 不同配方下原件的使用寿命有无显著差异

124

单因素方差分析
> lamp<-data.frame(X=c(1600, 1610, 1650, 1680, 1700, 1700, 1780, 1500,1640, 1400, 1700, 1750, 1640, 1550, 1600, 1620, 1640, 1600, 1740, 1800, 1510, 1520, 1530, 1570, 1640, 1600),A=factor(c(rep(1,7),rep(2,5), rep(3,8), rep(4,6)))) > lamp.aov<-aov(X ~ A, data=lamp) > summary(lamp.aov) Df Sum Sq Mean Sq F value Pr(>F) A Residuals 3 49212 16404 7574
125

2.166

0.121

22 166622

单因素方差分析
误差的正态性检验 shapiro.test()(各水平下是否正态) attach(lamp) shapiro.test(X[A==1]) shapiro.test(X[A==2]) shapiro.test(X[A==3]) shapiro.test(X[A==4]) 方差齐性检验 Baerlett检验(各水平方差是否相同) bartlett.test() bartlett.test(X~A, data=lamp) bartlett.test(lamp$X, lamp$A)
126

单因素方差分析
画图 plot(lamp$X~lamp$A)

127

双因素方差分析
分析树种与地理位置对松树生长的影响。A表示树种,B表示地区,对同一水平组 合进行了五次测量,对结果进行方差分析。

128

双因素方差分析
tree<-data.frame( A=gl(3,20,60), B=gl(4,5,60), Y=c(23, 25, 21, 14, 15, 20, 17, 11, 26, 21, 16, 19, 13, 16, 24, 20, 21, 18, 27, 24, 28, 30, 19, 17, 22, 26, 24, 21, 25, 26, 19, 18, 19, 20, 25, 26, 26, 28, 29, 23, 18, 15, 23, 18, 10, 21, 25, 12, 12, 22, 19, 23, 22, 14, 13, 22, 13, 12, 22, 19)) tree.aov <- aov(Y ~ A+B+A:B, data=tree)
129

双因素方差分析
> summary(tree.aov) Df Sum Sq Mean Sq F value A B A:B Residuals --Signif. codes: ‘ ’ 1
130

Pr(>F)

2 3 6 48

352.5 87.5 71.7 944.4

176.27 29.17 11.96 19.68

8.959 0.000494 *** 1.483 0.231077 0.608 0.722890

0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1

编写函数

131

编程基础
R可以灵活的编写程序,用户自己编写的程序可以直接调用。编程时 无需声明变量的类型,这与C,C++等语言不同。 基本格式 函数名 <- function(数据,参数1= 默认值,…) { 异常处理; 表达式(循环/判别); return(返回值); } 函数内部也可用#添加注释
132

程序流程控制 if
if(条件) 表达式 if(条件) 表达式1 else 表达式2 举例 p = 0.03 { if(p<=0.05) else } print("p <= 0.05!")

print("p > 0.05!")

133

循环 for, while
for(变量 in 向量) 表达式 用法: for(i in 1:10) print(i) while(条件) 表达式 用法: i <- 1 while(i<10){ print(i); i <- i + 1}

134

返回值
? 返回值表示函数输出的结果。 ? 返回值必须是一个对象。 ? R默认将最后一行作为返回值。 ? 如果函数的结果需要有多个返回值,可以创建一个list(),并 返回该对象。 ? 也可以用return()函数,设定返回值。 ? 但是一个函数的返回的对象只有一个。

135

异常处理
? 如数据输入不能满足要求,或者参数设定错误等等,可能造成函数给 出错误的结果,则需要对函数的运行过程发出警告或终止,以提高程 序的稳健性。 ? 警告的写法 if(any(is.na(inputdata))) inputdata <- na.omit(inputdata) cat(“NAs are found in the input data, and has been removed.\n") ? 终止的写法 if(any(is.na(xx))) stop("NAs are not allowed!\n")
136

函数举例
问题:输入直角三角形的两个边长,求其斜边长。 定义函数: rcal <- function(x,y){ z <- x^2 + y^2 result <- sqrt(z) return(result) } 调用函数: rcal(3,4)
137

数据保存

138

数据保存
write.table() write.csv() save.image() sink() unlink() 若有LaTeX基础,可以用 Sweave() 函数 该函数能将脚本、程序说明和运算结果直接保存成.tex文件,用 LaTeX编译成pdf文件。
139

一些应用

140

基因芯片
基因芯片(genechip)(又称DNA芯片、生物芯片)的原型是80年 代中期提出的。基因芯片的测序原理是杂交测序方法,即通过与一 组已知序列的核酸探针杂交进行核酸序列测定的方法,在一块基片 表面固定了序列已知的八核苷酸的探针。当溶液中带有荧光标记的 核酸序列TATGCAATCTAG,与基因芯片上对应位置的核酸探针产生 互补匹配时,通过确定荧光强度最强的探针位置,获得一组序列完 全互补的探针序列。据此可重组出靶核酸的序列。

141

基因芯片

142

基因芯片分析流程

143

Bioconductor
BioConductor是建立在R语言环境上的生物芯片数据 和基因组数据分析软件包。 主页是 http://www.bioconductor.org/ BioConductor由许多package组成,可以全部安装, 也可以单独安装。

144

Bioconductor
BioConductor的安装是在R控制台,输入: source(“http://bioconductor.org/biocLite.R”) biocLite()

安装特定的包,用如下: biocLite(“limma”) biocLite(“GenomicFeatures”, “AnnotationDbi”)

145

Bioconductor
Bioconductor has advanced facilities for analysis of microarray platforms including Affymetrix, Illumina, Nimblegen, Agilent, and other one- and two-color technologies.

146

Bioconductor
## Load packages > library(affy) > library(limma) # Affymetrix pre-processing # two-color pre-processing; differential # expression ## import "phenotype" data, describing the experimental design > phenoData <- read.AnnotatedDataFrame("sample-description.csv") ## RMA normalization > eset <- justRMA("/celfile-directory", phenoData=phenoData) ## differential expression > design <# describe model to be fit

model.matrix(~ Disease, pData(eset)) > fit <- lmFit(eset, design) > efit <- eBayes(fit) > topTable(efit, coef=2) # fit each probeset to model # empirical Bayes adjustment 147 # table of differentially expressed

Bioconductor
ID logFC AveExpr 636_g_at 39730_at 1635_at 1674_at 40504_at 40202_at 37015_at 32434_at 37027_at 37403_at 1.10 1.15 1.20 1.43 1.18 1.78 1.03 1.68 1.35 1.12 t P.Value adj.P.Val B 9.20 9.03 4.88e-14 9.00 8.59 3.88e-13 7.90 7.34 1.23e-10 5.00 7.05 4.55e-10 4.24 6.66 2.57e-09 8.62 6.39 8.62e-09 4.33 6.24 1.66e-08 4.47 5.97 5.38e-08 8.44 5.81 1.10e-07 5.09 5.48 4.27e-07 1.23e-10 21.29 4.89e-10 19.34 1.03e-07 13.91 2.87e-07 12.67 1.30e-06 11.03 3.63e-06 6.00e-06 1.70e-05 3.08e-05 1.08e-04 9.89 9.27 8.16 7.49 6.21

148

Bioconductor

149

Bioconductor

150

Bioconductor

151

文本挖掘

http://cos.name/2013/02/jinyong-fiction-mining/

152

文本挖掘

http://cos.name/2013/02/jinyong-fiction-mining/

153

文本挖掘
? 文本挖掘是抽取有效、新颖、有用、可理解的、散布在文 本文件中的有价值知识,并且利用这些知识更好地组织信 息的过程。 ? 文本挖掘是一个多学科混杂的领域,涵盖了多种技术,包 括数据挖掘技术、信息抽取、信息检索,机器学习、自然 语言处理、计算语言学、统计数据分析、线性几何、概率 理论甚至还有图论。

154

文本挖掘
? Ingo Feinerer开发维护的tm包提供了完整的文本挖掘 的框架,借助辅助工具及R包,甚至还可以处理word、 pdf文档的读入,文档处理并行化运算,文件数据库的语 料处理等问题。 library(tm) ? http://blog.crackcell.com/posts/2012/04/01 /intro_to_tm_package.html

155

文本挖掘
? 访问http://xxx.com抓取网页的HTML文本 ? 注意抓取网页的频率限制利用XML软件包解析HTML ? 获取网页的文本内容利用rmmseg4j软件包进行中文分词 ? 将数据导入数据库,进行简单的处理(大写转小写,删去 某些词语) ? 结果使用wordcloud软件包进行可视化展示

156

wordcloud

157

内容回顾
? R是开源的统计绘图软件,也是一种脚本语言,有大量的 程序包可以利用。 ? R中的向量、列表、数组、函数等都是对象,可以方便的 查询和引用,并进行条件筛选。 ? R具有精确控制的绘图功能,生成的图可以另存为多种格 式。 ? R编写函数无需声明变量的类型,能利用循环、条件语 句,控制程序的流程。 ? 一些常用统计方法的R实现。

158

159

谢谢!

160


赞助商链接

R统计软件及其在《时间序列分析》实践教学中的应用

R统计软件及其在《时间序列分析》实践教学中的应用 - 龙源期刊网 http://www.qikan.com.cn R 统计软件及其在《时间序列分析》实践教 学中的应用 作者:程胜 ...

R笔记整理1 应用统计软件

R笔记整理1 应用统计软件R笔记整理1 应用统计软件隐藏>> > ls() [1] ".Random.seed" > z=TRUE > mode(z) 逻辑字符 [1] "logical" > x=c("a","...

R是用于统计分析

R是用于统计分析_计算机软件及应用_IT/计算机_专业资料。R 是用于统计分析、绘图的语言操作环境。R 是属于 GNU 系统的一个自由、免费、源代 码开放的软件,它...

R软件

R软件_计算机软件及应用_IT/计算机_专业资料。R 软件在因子分析中的应用摘要:本文主要叙述了 R 软件在多元统计分析中的因子分析中的应用。 因子分析 是一种常用的...

R语言在生物统计学教学中的应用

浅谈R 语言在生物统计学教学中的应用 摘要:生物统计课程是生命科学领域本科学生的必修课程,因其 理论性强、内容抽象、计算公式繁多而往往影响教学效果。将易学 好...

R语言统计分析作业

R语言统计分析作业_计算机软件及应用_IT/计算机_专业资料。T<- read.table("G:/学习文件夹/R 语言/R 语言作业/5/住房状况 调查.csv",header=TRUE,sep=","...

数据的初步分析 R软件

数据的初步分析 R软件 - 第一章 数据的初步分析 一个数据可能有很多变量和观测值,这些变量和观测值可以通过一些简单的 表格、 图形以及少数的特征统计量来进行...

用R软件实现方差分析

R软件实现方差分析_数学_自然科学_专业资料。数理统计上机 报告 上机实验题目:用 R 软件实现方差分析 上机实验目的: 1.进一步理解方差分析的统计思想,学会使用方差...

统计建模与R软件第六章课后习题答案

统计建模与 R 软件第六章习题答案(回归分析) Ex6.1 (1) > x <- c(5.1, 3.5, 7.1, 6.2, 8.8, 7.8, 4.5, 5.6, 8.0, 6.4) > y <- c(...

用R软件对班级成绩进行操作和分析

统计建模与 R 软件。北京:清华大学出版社,2007.4 [2]蔡乐主译。 R 软件...应用学生成绩分析系统, 可以大大提高工作效率,减少成绩评判的误差同时我们也意识...