统计建模与R语言mathth.ppt

上传人:赵** 文档编号:65764447 上传时间:2022-12-08 格式:PPT 页数:23 大小:208.50KB
返回 下载 相关 举报
统计建模与R语言mathth.ppt_第1页
第1页 / 共23页
统计建模与R语言mathth.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《统计建模与R语言mathth.ppt》由会员分享,可在线阅读,更多相关《统计建模与R语言mathth.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、R的语法与数据结构v语法符号v 命令或运算提示符v+续行符基本算术运算v+加号 v-减号v*乘号v/除号v 乘方赋值符v=或 3+53-53/535x=5?plothelp(plot)12/6/20222v向量向量是R中最为基本的类型一个向量中元素的类型必须相同,包括v数值型整型单精度实型双精度实型v逻辑型v复值型v字符型12/6/20223建立向量的方法(函数)vseq()或:若向量(序列)具有较为简单的规律vrep()若向量(序列)具有较为复杂的规律vc()若向量(序列)没有什么规律例子:1:10seq(1,10,by=0.5)seq(1,10,length=21)rep(2:5,2)re

2、p(2:5,rep(2,4)x=c(42,7,64,9)length(x)12/6/20224向量运算中的循环法则(recycling rule)1:2+1:41:4+1:712/6/20225向量的下标(index)与向量子集(元素)的提取v正的下标 提取向量中对应的元素v负的下标 去掉向量中对应的元素v逻辑运算 提出向量中元素的值满足条件的元素注:R中向量的下标从1开始,这与通常的统计或数学软件一致而象C语言等计算机高级语言的向量下标则从0开始!例子:x=c(42,7,64,9)x1x-2xc(1,4)12/6/20226x10#值大于10的元素逻辑值 1 TRUE FALSE TRUE

3、FALSExx10#值大于10的元素 1 42 64xx10#产生(0,1)上100个均匀分布随机数y=runif(100,min=0,max=1)sum(ysum(yyx=c(42,7,64,9)y=1:4z.df=data.frame(cbind(INDEX=y,VALUE=x)z.dfINDEX VALUE1 1422 2 73 3644 4 9注 .df 只是为了提醒自己z.df是一个数据框架 INDEX和VALUE是重新命名的向量名字12/6/20229数据框架子集的提出取v格式 foorow,column其中 foo 数据框架的名称 row 需要提出取的行号 column 需要提出

4、取的行号v例子(续上一例)z.df1,#提取第一个观测(第一行)INDEX VALUE 1 1 42 z.df,1#提取第一列(第一个变量的值)1 1 2 3 4 z.df2,1#提取第二行第一列的元素1 212/6/202210v列表(list)复杂的数据分析时,仅有向量与数据框架还不够有时需要生成包含不同类型的对象R的列表(list)就是包含任何类型的对象例子:foo=list(x=1:6,y=matrix(1:4,nrow=2)foo$x 1 1 2 3 4 5 6$y ,1,2 1,1 3 2,2 412/6/202211列表子集的提出取v提取一个子对象如foo的x,下面三种方式等价

5、foo$xfoo1foo1 例子foo$yfoo2foo2foo12foo$y2foo$y412/6/202212v条件语句 作用:避免除零或负数的对数等数学问题形式1:if (条件)表达式1 else 表达式2形式2 常优于形式1!ifelse(条件,yes,no)试比较下面的三个结果:x=c(6:-4)sqrt(ifelse(x=0,x,NA)ifelse(x=0,sqrt(x),NA)if(x=0)sqrt(x)else NA12/6/202213v循环(loops)for()#若知道终止条件for(变量 in 向量)表达式while()#若无法知道运行次数while(条件)表达式两者通

6、常可以转换例1试比较两种方法for(i in 1:5)print(1:i)i=1while(i 和+,而源程序中是不需要的!12/6/202215 n=3044 a=c(rep(1,2*n),rep(2,2*n)t=c(rep(1,n),rep(2,n),rep(2,n),rep(1,n)g=rep(rep(1:1522,rep(2,1522),4)y=rnorm(4*n,mean=4.13,sd=0.75)ybar=data.frame(A=factor(a),G=factor(g),+T=factor(t),Intensity=y)attach(ybar)ybar1:10,#查看ybar的

7、前10行 res.mat=matrix(0,1522,8,byrow=TRUE)coef.mat=matrix(0,1522,4,byrow=TRUE)for(i in 1:1522)+gene.aov=aov(Intensity A+T+A*T,+sub=G=i)+res.mati,=residuals(gene.aov)#保存ANOVA分析的残差+coef.mati,=coef(gene.aov)#保存ANOVA分析的方差系数+res.mat1:10,#查看残差的前10行 coef.mat1:10,#查看方差系数的前10行12/6/202216v向量化(vectorization)循环(l

8、oops)很有用,但如果能将一组命令向量化,则应尽量避免循环,原因在于vC是一种编译语言,其效率是很高的;R则是一种解释语言。在计算时,通常C要比R快100倍。v在R中充分使用向量化,因为R会立即调用C进行运算,因而大大提高计算的效率!例子-见Ko-Kang Wangs“R Programming Workshop”,pp9-11(Gamma函数作图)vVector_1.R 没有使用向量和循环的源程序vVector_2.R 使用for循环改进后的源程序vVector_3.R 使用向量化后源程序12/6/202217v函数函数是一系列语句的组合,在R中可以写出自己的函数形式:变量名=functi

9、on(变量列表)函数体函数引用:变量名(变量的值)函数可以递归引用,但不提倡!例子 使用gamma函数求n!factorial=function(n)+if(n=0)gamma(n+1)+else print(“Please input a positive integer!)+factorial(6)factorial(-6)12/6/202218用于处理错误的函数 用于处理用户输入不正确的类型而可能出现的错误vwarning()若错误不严重以至影响整个计算vstop()若错误可能导致计算中止vprint()显示必要的信息vformatC()数值作为字符串输出vcat()字符串联,可以插入n

10、(换行)及t(tab键)vpaste()字符粘贴(非字符型自动转换)例子:cat(R,is,a good,software.n)formatC(1/3,format=f,digits=4)formatC(1/3,format=e,digits=4)paste(1:12)#与as.character(1:12)等价paste(A,1:6,sep=)paste(today is,date()12/6/202219R中的编程v编程的重要性一个统计软件(包)应该包罗万象所有统计方法或技术,可以完成所有的任务?这是一种错误的观点!v太贵!v费时!vSAS是一个世界上最为优秀的统计分析软件之一,但!当然S

11、AS具体编程能力,而SPSS更糟!v通过编程可以实现(开发)满足自己需要的函数或宏包 12/6/202220v好的编程习惯为了他人,更为你本人!你的程序应该具有v可读性(readability)v可理解性(understandability)习惯之一:行前缩进(Indentation),在此推荐使用软件vWinEdt =已开发了基于WinEdt的R使用平台v(X)Emacs=已开发了基于(X)Emacs的R使用平台vUltraEdit习惯之二:增加注释(Commenting),它是你的帮助 R中使用#作为注释语句的开始.习惯之三:变量的命名,使用意义明确的名字,切忌使用人或宠物的名字12/6/

12、202221例子 缩进 for(i in 1:1522)+gene.aov-aov(Intensity A+T+A*T,+sub=G=i)+res.mati,-residuals(gene.aov)+coef.mati,for(i in 1:1522)+gene.aov-aov(Intensity A+T+A*T,+sub=G=i)+res.mati,-residuals(gene.aov)+coef.mati,-coef(gene.aov)+12/6/202222v实例演示1Julian Faraway提供的一个简短的入门Introduction to R v使用 R GUIv使用 R Commanderv使用 R_XEmacs Further reference:Moores The Basic Practice of Statistics,Second Edition(Freeman,2000),2.John Verzani 提供的统计学入门SimpleR-Using R for Introductory Statistics v使用R_WinEdt12/6/202223

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁