《R语言与统计分析1.pdf》由会员分享,可在线阅读,更多相关《R语言与统计分析1.pdf(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、R语言与统计分析语言与统计分析李启寨李启寨中科院数学与系统科学研究院中科院数学与系统科学研究院中科院北京基因组研究所中科院北京基因组研究所目录目录1.R 简介简介2.R 语法与数据结构语法与数据结构3.程序控制语句程序控制语句4.矩阵运算矩阵运算5.统计函数统计函数6.输入与输出输入与输出7.图形图形3R的无私奉献者的无私奉献者Ross IhakaRobert GentlemanBill Venables41.R 简介简介1.1 简介简介?R语言是一种语言语言是一种语言?一种软件,集统计分析与图形直观显示一种软件,集统计分析与图形直观显示?是完全免费的!而是完全免费的!而S-Plus尽管是非常
2、优秀的统计分析软件,需要支付一笔尽管是非常优秀的统计分析软件,需要支付一笔$?R 可以运行于可以运行于UNIX,Windows和和 Macintosh 的操作系统上的操作系统上5?R嵌入了一个非常实用的帮助系统嵌入了一个非常实用的帮助系统?R具有很强的作图能力具有很强的作图能力?程序易移植到程序易移植到S-Plus程序中,反之的许多程序直接或稍作修改可用于程序中,反之的许多程序直接或稍作修改可用于?通过语言的许多内嵌统计函数,很容易学习和掌握通过语言的许多内嵌统计函数,很容易学习和掌握R语言的语法语言的语法?可以编制自己的函数来扩展现有的语言可以编制自己的函数来扩展现有的语言(这就是为什么它在
3、不断升级完善这就是为什么它在不断升级完善!)61.2的网上资源的网上资源?R主页主页:http:/www.r-project.org?CRAN(Comprehensive R Archive Network),http:/cran.r-project.orghttp:/cran.r-project.org/mirrors.html?UCLA提供的关于提供的关于R与与S-Plus的联接,具有搜索功能的联接,具有搜索功能http:/statcomp.ats.ucla.edu/splus/default.htm?李东风主页提供了的李东风主页提供了的Windows版本版本http:/ 统计分析软件包统
4、计分析软件包CRAN提供了许多便于统计分析的宏提供了许多便于统计分析的宏http:/cran.r-project.org/src/contrib/PACKAGES.html VaR 风险值分析风险值分析 tseries 时间序列分析时间序列分析 matrix 矩阵运算矩阵运算 cinterface C与与R的接口的接口 foreign 读写由读写由S,Minitab,SAS,SPSS,Stata等软件的数据等软件的数据 normix 混合正态分布分析混合正态分布分析 nortest 正态分布的正态分布的Anderson-Darling检验检验 MCMCpack 基于基于Gibbs抽样的抽样的M
5、CMC抽样方法抽样方法还有很多还有很多2.2.R语法与数据结构语法与数据结构2.1 语法语法?符号符号 命令或运算提示符命令或运算提示符+续行符续行符?基本算术运算基本算术运算+加号加号-减号减号*乘号乘号/除号除号乘方乘方?赋值符赋值符=或或 1:10seq(1,10,by=0.5)或者或者 seq(from=1,to=10,by=0.5)或者或者 seq(1,10,length=21)rep(2:5,2)重复第一个自变量重复第一个自变量(2:5)若干次若干次rep(2:5,rep(2,4)2 2 3 3 4 4 5 5x=c(42,7,64,9)length(x)11注意向量运算中的循环法
6、则注意向量运算中的循环法则(recycling rule)1:2+1:4 1:4+1:7111212224231344246 +=+=111222241333624448351564626873710+=+=12向量的下标向量的下标(index)与向量子集与向量子集(元素元素)的提取的提取 正的下标提取向量中对应的元素正的下标提取向量中对应的元素 负的下标去掉向量中对应的元素负的下标去掉向量中对应的元素 逻辑运算提出向量中元素的值满足条件的元素逻辑运算提出向量中元素的值满足条件的元素注:注:R中向量的下标从中向量的下标从1开始,这与通常的统计或数学软件 一致而象开始,这与通常的统计或数学软件
7、一致而象C语言等计算机高级语言的向量下标则从语言等计算机高级语言的向量下标则从0开始!开始!例子:例子:x=c(42,7,64,9)x1x-2xc(1,4)xwhich(x9)132.3 因子(factor)2.3 因子(factor)统计中常处理的一类数据:分类数据统计中常处理的一类数据:分类数据(categorical data);涉及的变量称作:名义;涉及的变量称作:名义(nominal)变量或分类变量。变量或分类变量。R中用中用factor来表示分类变量;对于来表示分类变量;对于factor类型的数据,常用的函数有:类型的数据,常用的函数有:table();ftable();产生列联表
8、产生列联表(contingency table)chisq.test();对列联表做卡方检验对列联表做卡方检验14例:例:sex=factor(c(男男,女女,男男,男男,女女)res.tabres.tab男 女男 女3 2names(res.tab)cat(res.tab)152.4 数据框数据框(data frame)一个数据框就是将许多向量组合起来的一个对象,它是二维的,通常其列表示变量,其行表示观测一个数据框就是将许多向量组合起来的一个对象,它是二维的,通常其列表示变量,其行表示观测数据框的用途数据框的用途 数据框的主要用途是保存统计建模需要的数据。数据框的主要用途是保存统计建模需要的
9、数据。数据框的生成数据框的生成 例子:例子:d foo=list(x=1:6,y=matrix(1:4,nrow=2)foo$x1 1 2 3 4 5 6$y,1,21,1 32,2 4列表子集的提取列表子集的提取提取一个子对象如提取一个子对象如foo的的x,foo$xfoo1193.程序控制语句程序控制语句3.1 条件语句条件语句形式形式1:if(条件条件)表达式表达式if(条件条件)表达式表达式 else 表达式表达式if else if else if else 形式形式2(常优于形式常优于形式1!)ifelse(条件条件,yes,no)3.2 循环循环(loops)for(变量变量 i
10、n 向量向量)表达式表达式while(条件条件)表达式表达式203.3 函数函数 函数是一系列语句的组合,在函数是一系列语句的组合,在R中可以写出自己的函数中可以写出自己的函数 形式形式:变量名变量名=function(变量列表变量列表)函数体函数体 函数引用函数引用:变量名变量名(变量的值变量的值)函数可以递归引用,但不提倡!函数可以递归引用,但不提倡!例子例子 使用使用gamma函数求函数求n!factorial=function(n)+if(n=0)gamma(n+1)+else print(“Please input a positive integer!)+factorial(6)f
11、actorial(-6)213.4 类型的相互转换3.4 类型的相互转换 转换函数:转换函数:as.类型名类型名 例如:例如:as.logical;as.integer;as.double;as.character;as.vector;as.matrix;as.list;as.data.frame 注:注:is.类型名类型名:用于判断是否是该类型用于判断是否是该类型as.integer(F)as.integer(T)4.矩阵运算矩阵运算向量运算向量运算整数除法:整数除法:%/%求余:求余:%排序:排序:sort(),order(),rank()向量向量x,y的内积:的内积:crossprod(
12、x,y);绝对值:绝对值:abs()平方根平方根:sqrt()找出互不相同的元素:找出互不相同的元素:unique()找到真值下表的集合:找到真值下表的集合:which()矩阵矩阵 A,B矩阵的生成:矩阵的生成:matrix(1:12,ncol=4,byrow=T)转置:转置:t(A)矩阵乘法:矩阵乘法:A%*%B 矩阵的逆:矩阵的逆:solve(A)解线性方程组:解线性方程组:Ax=b 语句:语句:solve(A,b)特征值分解:特征值分解:eigen()返回特征值和特征向量(列向量),结果是个列表返回特征值和特征向量(列向量),结果是个列表 行列式:行列式:det()奇异值分解:奇异值分解
13、:svd()相对特征根相对特征根|A-B|=0yeigen(diag(1/(y$d)%*%t(y$u)%*%A%*%(y$v)245.统计函数统计函数观测数据观测数据 x(向量)(向量)?最小值:最小值:min(x)?最大值:最大值:max(x)?极差:极差:max(x)-min(x)?求和:求和:sum(x)?均值:均值:mean(x)?方差:方差:var(x)?标准差:标准差:sd(x)?中位数:中位数:median(x)255.2 分布函数5.2 分布函数 每一种分布有四个函数:每一种分布有四个函数:ddensity(密度函数)(密度函数)p分布函数分布函数q分位数函数分位数函数r随机数
14、生成函数。随机数生成函数。例:正态分布的这四个函数为:例:正态分布的这四个函数为:dnorm,pnorm,qnorm,rnorm26 常见的分布常见的分布正态:正态:norm t分布:分布:tF分布:分布:f 卡方(包括非中心)卡方(包括非中心):chisq均匀:均匀:unif指数:指数:exp威布尔:威布尔:weibull伽玛:伽玛:gamma:贝塔:贝塔:beta 对数正态:对数正态:lnorm逻辑分布:逻辑分布:logis柯西:柯西:cauchy二项分布:二项分布:binom几何分布:几何分布:geom超几何:超几何:hyper 负二项:负二项:nbinom泊松:泊松:pois27例例1
15、.生成随机数生成随机数 n 服从正态分布的随机变量,均值为服从正态分布的随机变量,均值为16,方差为,方差为1.5rnorm(n,mean=16,sd=1.5)服从均匀分布的随机变量,取值服从均匀分布的随机变量,取值(0,1)runif(n)例例2.自由度为自由度为1的卡方分布的四分位差的卡方分布的四分位差0.74*(qchisq(0.75,1)-qchisq(0.25,1)6.数据的输入输出6.数据的输入输出 输入函数:输入函数:read.table(filename,header=T,row.names=1)例子:例子:HousePrice dattach(d)hist(Height)hi
16、st(d$Height)31327.2 茎叶图茎叶图用用 stem()函数绘制茎叶图函数绘制茎叶图stem(Weight,scale=2)The decimal point is 1 digit(s)to the right of the|5|16|7|78|344559|0810|03311|223312|813|314|15|0337.3 盒形图盒形图用用 boxplot()绘制盒形图绘制盒形图boxplot(Weight)34357.3 Q-Q图图用用 qqnorm 绘制正态概率绘制正态概率Q-Q图图qqnorm(Weight)36377.4 散点图散点图用用 plot 绘制散点图绘制散
17、点图plot(Height,Weight)3839例:产生样本量大小为例:产生样本量大小为1000,服从,服从(0,40)均匀分布的样本,计算其均值,中位数,均匀分布的样本,计算其均值,中位数,0.1的切尾均值,标准差,四分位差。然后重复上述过程的切尾均值,标准差,四分位差。然后重复上述过程500次,可得上述位置或刻度特征量的次,可得上述位置或刻度特征量的500个数值,画出其盒形图比较。个数值,画出其盒形图比较。40z1-rep(0,times=400)z2-z1z3-z1z4-z1z5-z1for(i in 1:500)x-runif(1000,min=0,max=40)y-sort(x)z1i-mean(x)z2i-median(x)z3i-sum(y101:900)/(0.8*1000)z4i-sd(x)z5i-0.74*(y750-y250)D-data.frame(均值均值=z1,中位数中位数=z2,切尾均值切尾均值=z3,标准差标准差=z4,四分位差四分位差=z5)boxplot(D)41几个常用命令几个常用命令 清屏:清屏:ctr+l 显示变量:显示变量:ls()查询帮助:查询帮助:?模糊搜索:模糊搜索:help.search(关键词关键词)43谢 谢!谢 谢!
限制150内