收藏 分销(赏)

统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx

上传人:快乐****生活 文档编号:3535746 上传时间:2024-07-09 格式:PPTX 页数:162 大小:2.63MB
下载 相关 举报
统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx_第1页
第1页 / 共162页
统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx_第2页
第2页 / 共162页
统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx_第3页
第3页 / 共162页
统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx_第4页
第4页 / 共162页
统计模拟与R相关资料习题答案省公共课一等奖全国赛课获奖课件.pptx_第5页
第5页 / 共162页
点击查看更多>>
资源描述

1、统计模拟与统计模拟与主讲:朱 强 理学院QQ群群:6052759E-Mail:qiang_Simulation and R第1页课程要求课程要求1.本课程上机实习3-4次2.每次上机需要完成一次试验并提交3.本课程怎么考试?4.总评=考勤+试验作业+考试成绩第2页主要内容主要内容1.R软件介绍2.R统计分析3.统计模拟介绍第3页教材和主要参考书籍教材和主要参考书籍1、肖枝洪、朱强著肖枝洪、朱强著,统计模拟及其统计模拟及其R实现,实现,武汉大学出版社,武汉大学出版社,2、Sheldon.M.Ross,Simulation,(3nd),Elsevier,3、王兆军,陈广雷,邹长亮译,统计模拟王兆军

2、,陈广雷,邹长亮译,统计模拟(第第4版版),人民邮电出版社,人民邮电出版社,.4、薛毅,陈立萍,统计建模与薛毅,陈立萍,统计建模与R软件,软件,清华大学出版社清华大学出版社,.第4页第一篇:第一篇:R介绍介绍R是是一个开放一个开放(GPL)统计编程环境统计编程环境一个语言,是语言一个语言,是语言(由由AT&T Bell试验室试验室Rick Becker,John Chambers,Allan Wilks开发开发)一个一个方言方言(dialect)之一,另一则为之一,另一则为S-plus.一个软件,是集统计分析与图形直观显示于一体统计分一个软件,是集统计分析与图形直观显示于一体统计分析析第5页R

3、作为一个计划作为一个计划(project),最早,最早(1995年年)是由是由Auckland大学统计系大学统计系Robert Gentleman和和Ross Ihaka开始编制,当前由关键开发小组开始编制,当前由关键开发小组(R Development Core Team 以后用以后用R DCT表示表示)维护,他们完全自愿、工作努力负责,维护,他们完全自愿、工作努力负责,并将全球优异统计应用软件打包提供给我们。我们并将全球优异统计应用软件打包提供给我们。我们能够经过计划网站能够经过计划网站(http:/www.r-project.org)了解相关最新信息和使用说明,了解相关最新信息和使用说明

4、,得到最新版本软件和基于应用统计软件包得到最新版本软件和基于应用统计软件包.第6页R无私贡献者Bill Venables Robert Gentleman Ross Ihaka 第7页R无偿无偿 R 资源公开资源公开(不是黑盒子不是黑盒子,也不是吝啬鬼也不是吝啬鬼)R能够在能够在UNIX,Windows和和Macintosh运运行行.R 有优异有优异内在帮助系统内在帮助系统.R有优异有优异画图功效画图功效学生能够轻松地学生能够轻松地转转到商业支持到商业支持 S-Plus程序程序(假假如需要使用商业软件如需要使用商业软件)R语言有一个语言有一个强大强大,轻易学习轻易学习语法语法,有许多内在统有许

5、多内在统计函数计函数.第8页经过用户经过用户自编程序自编程序,R语言很轻易语言很轻易延伸和扩大延伸和扩大.它它就是这么成长就是这么成长.经过语言许多内嵌统计函数,很轻易学习和掌握经过语言许多内嵌统计函数,很轻易学习和掌握R语语言语法言语法.我们能够编制自己函数来扩展现有语言我们能够编制自己函数来扩展现有语言(这就是为何这就是为何它在不停等级完善它在不停等级完善!)R 是计算机编程语言是计算机编程语言.类似于类似于UNIX语言语言,C语言语言,Pascal,Gauss语言等语言等.对于熟练编程者对于熟练编程者,它将以为该语言它将以为该语言比其它语言更比其它语言更熟悉熟悉.而对计算机初学者而对计算

6、机初学者,学习学习R语言语言使得学习下一步使得学习下一步其它编程不那么困难其它编程不那么困难.那些傻瓜软件那些傻瓜软件(SAS,SPSS等等)语言语法则完全语言语法则完全不一样不一样.第9页R缺点缺点不如不如S-Plus在编辑输出画图那样好在编辑输出画图那样好没有商业支持没有商业支持(但有网上支持但有网上支持)需要编程需要编程,不傻瓜不傻瓜.第10页R历史历史S语言在语言在1980年代后期在年代后期在AT&T试验室开发试验室开发.R 项目由项目由Auckland 大学统计系大学统计系Robert Gentleman和和Ross Ihaka于于1995年开始年开始.它很快得到广泛用户欢迎它很快得

7、到广泛用户欢迎.当前它是由当前它是由R关键发关键发展团体维持展团体维持;它是一个由志愿者组成工作努力国它是一个由志愿者组成工作努力国际团体际团体第11页参考资料参考资料 随软件所附随软件所附pdf文档文档(help-manuals),随版随版本更新本更新:W.N.Venables,D.M.Smith and the R DCT:Introduction to R-Notes on R:A Programming Environment for Data Analysis and Graphics,.http:/bayes.math.montana.edu/Rweb/Rnotes/R.htmlR

8、 DCT,The R Environment for Statistical Computing and Graphics-Reference Index,.R DCT,R Data Import/Export,.R DCT,R Language Definition,R DCT,Writing R Extensions,第12页Kurt Hornik,R FAQ,Version 1.8-1,-10-07 B.D.Ripley,R for Windows FAQ,Version for rw1080R Html Help,Statistical Data Analysis 其它其它PDF/HT

9、ML文件:文件:Kickstarting R,http:/cran.r-project.org/doc/contrib/Lemon-kickstart/R examples,Alison Gibbs,http:/www.utstat.toronto.edu/alisong/Teaching/Winter04/Sta248/Rex.html 第13页*Ko-Kang Wang,Introduction to R for Statisticians,J.H.Maindonald,Using R for Data Analysis and Graphics An Introduction,J.H.M

10、aindonald,Using S-PLUS for Data Analysis and Graphics,Emmanuel Paradis,R for beginners Jonathan Baron,R reference card Bret Larget,R for Introductory Statistics,第14页近期畅销书近期畅销书:Peter Dalgaard,Introductory Statistics with R,Springer,John Maindonald,John Braun,Data Analysis and Graphics Using R-An Exam

11、ple-based Approach,Cambridge University Press,John Fox,An R and S-Plus Companion to Applied Regression,Sage Publications,Inc.,W.N.Venables and B.D.Ripley,Modern Applied Statistics with S,4th Ed.,第15页近期畅销书近期畅销书:统计建模与统计建模与R,薛毅等,清华大学出版社,薛毅等,清华大学出版社,R语言统计分析软件教程,王斌会,语言统计分析软件教程,王斌会,R语言与统计分析语言与统计分析,汤银才,高教出

12、版社,汤银才,高教出版社,R语言及语言及Bioconductor在基因组分析中应用,在基因组分析中应用,孙啸等,孙啸等,科学出版社科学出版社第16页O、R安装1.进入网站进入网站http:/www.r-project.org2.点击左边点击左边Download,Packages下下CRAN选择镜像:选择镜像:China有六个镜像点,随意点击一个有六个镜像点,随意点击一个第17页O、R安装3.点击下列图中点击下列图中Windows,再点击再点击base4.点击第一行点击第一行Download R 2.13.1 for Windows(32 megabytes)下载下载第18页一、R运行平台R_G

13、UI开启开启R,我们看到我们看到R GUI(graphic users interface)主窗口主窗口,它由三部分组成它由三部分组成主菜单主菜单工具条工具条R console(R运行窗口运行窗口)R console你主要工作是在这里经过公布命令来完成你主要工作是在这里经过公布命令来完成,包含数据集建包含数据集建立立,数据分析数据分析,作图等作图等.在这里你能够得到在线帮助在这里你能够得到在线帮助help.start()HTML格式关于格式关于R帮助文件帮助文件help()得到对应函数帮助得到对应函数帮助,比如比如help(plot)demo()得到得到R提供几个示例提供几个示例q()退出退出

14、R 同同Matlab类似,用方向键能够重现以前命令类似,用方向键能够重现以前命令第19页二、R语法与数据结构语法语法符号符号 命令或运算提醒符命令或运算提醒符+续行符续行符基本算术运算基本算术运算+加号加号 -减号减号*乘号乘号/除号除号 乘方乘方%*%矩阵乘法矩阵乘法%求余数求余数%/%整数除法整数除法赋值符赋值符=或或 3+53-53/535x=5?plothelp(plot)第21页三、向量三、向量向量是向量是R中最为基本类型中最为基本类型一个向量中元素类型必须相同,包含一个向量中元素类型必须相同,包含数值型数值型整型整型单精度实型单精度实型双精度实型双精度实型逻辑型逻辑型复值型复值型字

15、符型字符型第22页1、数值向量、数值向量定义向量惯用方法定义向量惯用方法(函数函数)seq()或或:若向量若向量(序列序列)含有较为简单规律含有较为简单规律rep()若向量若向量(序列序列)含有较为复杂规律含有较为复杂规律c()若向量若向量(序列序列)没有什么规律没有什么规律例例1:10seq(1,10,by=0.5)seq(1,10,length=21)rep(2:5,2)rep(2:5,rep(2,4)x=c(42,7,64,9)length(x)第23页向量运算向量运算:+,-,*,/,含义是对每个元素进行运算含义是对每个元素进行运算.例例x=1:32*x-111 3 51:表示该行第一

16、个数下标表示该行第一个数下标.%/%:表示整数除法表示整数除法,%表示求余数表示求余数7%/%37%3两个等长向量之间加两个等长向量之间加,减减,乘乘,除除,乘方运算是对应乘方运算是对应元素间四则运算元素间四则运算.第24页1:3+c(5,7,2)/c(5,7,1)12 3 5两个不等长向量之间运算则是两个不等长向量之间运算则是:长度短向量将循长度短向量将循环使用环使用.c(100,200)+c(1,2,3,4)1101 202 103 204第25页向量运算中循环法则(recycling rule)1:2+1:41:4+1:7第26页sqrt(x),log(x),exp(x),sin(x),

17、cos(x),tan(x),abs(x)分别表示平方根分别表示平方根,对数对数,指数指数,三角函数及绝对值三角函数及绝对值.sort(x,decreasing=FALSE)返回按返回按x元素从小到大排元素从小到大排序结果向量序结果向量.order(x)是使得是使得x从小到大排列元素下标向量从小到大排列元素下标向量,sort(x)与与xorder(x)是等效是等效.numeric(n):表示长度为表示长度为n零向量零向量注意:1:n-1与1:(n-1)区分.1:3-11:(3-1)第27页2、逻辑向量逻辑向量向量能够取逻辑值向量能够取逻辑值,如如l=c(TRUE,TRUE,FALSE)x=c(1

18、,4,6.25)l3l1FALSE TRUE TRUE两个向量也可比较两个向量也可比较log(10*x)1 2.302585 3.688879 4.135167log(10*x)x1 TRUE FALSE FALSE比较运算符比较运算符:,=,=(相等相等),!=(不等不等)逻辑向量能够进行与逻辑向量能够进行与(&)表示同时满足表示同时满足,或或(|)二者之一二者之一运算运算.第28页如如:(x=2)&(xall(log(10*x)x)判断是否有真值函数为判断是否有真值函数为anyany(log(10*x)x)函数函数is.na(x)用来判断用来判断x每一个元素是否有缺失值每一个元素是否有缺失

19、值.如如is.na(c(1,2,NA)1 FALSE FALSE TRUE还能够将逻辑值强制转化为整数值,如:将还能够将逻辑值强制转化为整数值,如:将TRUE变成变成1,FALSE变成变成0,c(0,1)(x3)+11 0 1 1(x3)+1#+1表示把逻辑值强制转化为整数值表示把逻辑值强制转化为整数值1,01 1 2 2第29页3、字符型向量字符型向量c1=c(“a”,”b”)c11“a”“b”c2=c(“weight”,”height”,”年纪年纪”)c21”weight”“height”“年纪年纪”paste函数用来把它自变量连成字符串,中间用对应分隔符函数用来把它自变量连成字符串,中间

20、用对应分隔符paste(”My”,”Job”)paste(c(“X”,”Y”),”=“,1:4)paste(“result.”,1:5,sep=“”)#sep表示所用分隔符表示所用分隔符 paste(my,job,sep=)1 myjob paste(my,job,sep=.)1 my.job第30页4、复数向量复数向量复数输入只要像格式复数输入只要像格式5+2i输入即可,以下定义复数向量输入即可,以下定义复数向量x=(0:100)/100*2*piy=sin(x)z=complex(re=x,im=y)complex函数定义复数,函数定义复数,x为实部,为实部,y为虚部为虚部plot(z)画

21、出画出z点图点图也可给定模和辐角定义复数向量:也可给定模和辐角定义复数向量:zz=complex(mod=1,arg=(0:11)/12*2*pi)Re()计算实部,计算实部,Im()计算虚部,计算虚部,Mod()计算复数模,计算复数模,Arg()计算复数辐角,计算复数辐角,Conj()计算共轭。基本数学函数也支持复计算共轭。基本数学函数也支持复数运算。数运算。sqrt(-2+0i)第31页5、向量下标运算向量下标运算R中向量下标从中向量下标从1开始,这与通常统计或数学软件不开始,这与通常统计或数学软件不 一致而象一致而象C语言等计算机高级语言向量下标则从语言等计算机高级语言向量下标则从0开始

22、!开始!访问向量某个元素访问向量某个元素xix=c(42,7,64,9)x2也可单独改变某个元素值也可单独改变某个元素值x3=-1 访问向量一部分几个方法:访问向量一部分几个方法:(1)正整数下标向量正整数下标向量xc(1,4)142 9x2:4(2)负整数下标向量负整数下标向量x-1表示删除第一个元素表示删除第一个元素(3)逻辑下标向量逻辑下标向量xx10表示选取表示选取xxxages=c(Li=23,Zhang=33,Wang=45)ages Li Zhang Wang 23 33 45 访问时能够用通常方法,还能够用元素名访问访问时能够用通常方法,还能够用元素名访问ages“Zhang”

23、Zhang 33还能够定义向量后,再后加上名字还能够定义向量后,再后加上名字age1=c(21,34,56)names(age1)=c(“Zhang”,”Ding”,”Liu”)下面定义一个向量分段函数下面定义一个向量分段函数y=numeric(length(x)yx0=1-xxyx=0=1+xx=0第33页四、矩阵与多维数组四、矩阵与多维数组1、矩阵函数格式、矩阵函数格式matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)data为数组数据向量,为数组数据向量,nrow为函数,为函数,ncol为列数,为列数,byrow=TRUE表示按

24、行写入数据,不然按列。表示按行写入数据,不然按列。R中默认是按列填数据。中默认是按列填数据。A=matrix(1:12,ncol=4,byrow=TRUE)A ,1,2,3,41,1 2 3 42,5 6 7 83,9 10 11 12c(A)显示显示A全部向量,是按列拉直向量。全部向量,是按列拉直向量。cbind()把向量横向拼成一个大矩阵,把向量横向拼成一个大矩阵,rbind()把向量纵向拼把向量纵向拼成一个大矩阵。成一个大矩阵。对角和单位矩阵对角和单位矩阵 diag(1,2,3),diag(1,3)第34页B=rbind(c(1,2),c(3,4)C=cbind(c(11,12),c(1

25、3,14)D=rbind(B,C)E=cbind(B,C)2、访问矩阵元素和子矩阵、访问矩阵元素和子矩阵A2,3访问是矩阵(访问是矩阵(2,3)元素)元素7Ai,访问第访问第i行,行,A,j访问第访问第j列列 表示访问第表示访问第 第第列交叉而成子矩阵列交叉而成子矩阵注意:注意:A=0表示不改变表示不改变A大小只改变元素值为大小只改变元素值为0也能够对矩阵行标和列标重新命名。也能够对矩阵行标和列标重新命名。rownames(A)=c(“a”,”b”,”c”)colnames(A)=paste(“X”,1:4,sep=“”)3、矩阵运算、矩阵运算矩阵能够进行四则运算矩阵能够进行四则运算(+,-,

26、*,/,)表示矩阵对应元素四则元表示矩阵对应元素四则元素,参加运算普通是相同形状素,参加运算普通是相同形状第35页形状不一致向量和矩阵也可进行四则运算。规则是矩阵数据按形状不一致向量和矩阵也可进行四则运算。规则是矩阵数据按向量(按列拉直)对应元素进行运算。向量(按列拉直)对应元素进行运算。A+c(100,200,300)矩阵乘法矩阵乘法A%*%B,t(A)表示表示A转置。转置。B=matrix(c(1,0),nrow=4,ncol=2,byrow=T)A%*%B4、apply函数函数对矩阵想对某行(列)进行某种计算,可用对矩阵想对某行(列)进行某种计算,可用apply函数,函数,apply(x

27、,margin,fun,)x表示矩阵,表示矩阵,margin=1表示对每行计算,表示对每行计算,margin=2表示表示对每列计算,对每列计算,fun是用来计算函数。是用来计算函数。apply(A,1,sum)apply(A,2,mean)5、矩阵其它运算、矩阵其它运算行列式:行列式:det(A)求逆:求逆:solve(A)特征值和特征向量:特征值和特征向量:eigen(A)第36页比如:计算矩阵比如:计算矩阵A=求求A行列式及逆行列式及逆A=matrix(c(1,2,-1,-3,2,4,0,-4,-1,1,2,2,0,2,1,3),nrow=4)det(A)solve(A)第37页五、因子五

28、、因子1.factor()函数函数例子:知道例子:知道5位学生性别,用因子变量表示位学生性别,用因子变量表示sex=c(“M”,”F”,”M”,”M”,”F”)sexf=factor(sex);sexf1 M F M M FLevels:F M函数函数factor()用来把一个向量编码为一个因子,普通形式为用来把一个向量编码为一个因子,普通形式为factor(x,levels=sort(unique(x),na.last=TRUE),labels,exclude=NA,ordered=FALSE)is.factor()检验对象是否是因子,检验对象是否是因子,as.factor()把向量转化把向

29、量转化为因子。为因子。levels()能够得到因子水平能够得到因子水平sex.level=levels(sexf);sex.level1”F”“M”对因子向量可用对因子向量可用table()统计各类数据频数。统计各类数据频数。sex.tab=table(sexf);sex.tab第38页2.tapply()函数函数例子:知道例子:知道5位学生性别,还知道这位学生性别,还知道这5位学生身高,分组求身高位学生身高,分组求身高平均值平均值height=c(174,165,180,171,160)tapply(height,sex,mean)1 F M 162.5 175.0tapply()普通形式为

30、普通形式为tapply(x,INDEX,FUN=NULL,simplify=TRUE)x是一对象,通常为一向量,是一对象,通常为一向量,INDEX是与是与X有一样长度因子,有一样长度因子,FUN是要计算函数是要计算函数3.gl()函数函数gl()能够方便地产生因子,能够方便地产生因子,gl(n,k,length=n*k,labels=1:n,odered=FALSE)n为水平数,为水平数,k为重复次数,为重复次数,length为结果长度,为结果长度,labels为为n维向量,表示因子水平,维向量,表示因子水平,ordered是逻辑变量,表示是否为有是逻辑变量,表示是否为有序因子,缺省值序因子,

31、缺省值FALSEgl(2,3)gl(2,1,6)第39页六、列表(六、列表(list)和数据框()和数据框(data.frame)1、列表结构、列表结构red=list(name=“拂晓拂晓”,age=30,scores=c(85,76,90)rec$name1 拂晓拂晓$age1 30$scores1 85 76 90第40页列表元素可用列表元素可用”列表名列表名下标下标”引用引用rec2130rec32但列表不一样于向量,每次只能引用一个元素,如但列表不一样于向量,每次只能引用一个元素,如rec1:2是不允许是不允许对连续型变量产生因子对连续型变量产生因子,或分类或分类agerec“age

32、”rec$age2、列表修改、列表修改rec$name=“张三张三”rec$age=list(20,32,58)可重新添加一些到列表中可重新添加一些到列表中rec$sex=“男男”rec6=161第第5号元素没定义,所以值是号元素没定义,所以值是”NULL”,若若rec是一个向量,则是一个向量,则空元素为空元素为”NA”列表之间还能够连接起来,列表之间还能够连接起来,List.ABC=c(list.A,list.B,list.C)第42页3.数据框数据框数据框通常是矩阵形式数据,但矩阵各列能够是不一数据框通常是矩阵形式数据,但矩阵各列能够是不一样类型。数据框每列是一个变量,每行是一个观察。样类

33、型。数据框每列是一个变量,每行是一个观察。(1)生成数据框生成数据框 普通能够把数据框看作一个推广了矩阵,它可用矩普通能够把数据框看作一个推广了矩阵,它可用矩阵形式阵形式表示,数据框能够用表示,数据框能够用data.frame()函数生成,使用函数生成,使用方法与方法与list()函数相同函数相同ls()#列出工作空间你定义全部变量列出工作空间你定义全部变量str(x)#给出对象给出对象x一些信息一些信息第43页d=data.frame(name=c(李明李明,张聪张聪,王王建建),age=c(30,35,28),height=c(180,162,175)d name age height1

34、李明 30 1802 张聪 35 1623 王建 28 175能够将列表转化为一个数据框能够将列表转化为一个数据框:如比较他们之间区分如比较他们之间区分d1=list(name=c(李明李明,张聪张聪,王建王建),age=c(30,35,28),height=c(180,162,175)as.data.frame(d1)第44页(2)数据框引用)数据框引用引用数据框元素方法与引用矩阵元素方法相同。引用数据框元素方法与引用矩阵元素方法相同。d1:2,2:3数据框各变量也可用按列表引用数据框各变量也可用按列表引用(用双括号用双括号或或$引引用用)d“age”1 30 35 28d$height1

35、180 162 175数据框各行也能够定义名字,用数据框各行也能够定义名字,用rownames属性定属性定义。义。names(d)1 name age heightrownames(d)=c(one,two,three)rownames(d)1 one two three第45页(3)attach()函数函数数据框主要用途是保留统计建模数据。调用数据框变数据框主要用途是保留统计建模数据。调用数据框变量像以前量像以前d是不方便是不方便,R提供了函数提供了函数attach()能能够把变量调入内存。够把变量调入内存。attach(d)r=age/height#此时此时age,height是能够利用是

36、能够利用但但r值不会进入数据框值不会进入数据框d,若想把刚才,若想把刚才r看成新数据框看成新数据框变量变量d$r=age/weight d name age height rone 李明 30 180 0.1666667two 张聪 35 162 0.2160494three 王建 28 175 0.1600000detach(d)取消连接取消连接第46页(4)列表与数据框编辑)列表与数据框编辑可用函数可用函数edit()对列表或者数据框进行编辑对列表或者数据框进行编辑newd=edit(d)当然也可对向量,数组,矩阵类型数据进行修改和编当然也可对向量,数组,矩阵类型数据进行修改和编辑辑.Fi

37、x用函数用函数merge(x,y,.)对两个数据框合并成一个对两个数据框合并成一个可查看帮助可查看帮助.?merge 第47页 七、输入输出七、输入输出1.输入输入(1)read.table()等相关函数等相关函数read.table()函数是读表格形式文件函数是读表格形式文件,若若”班级班级”数数据已输入到一个纯文本文件据已输入到一个纯文本文件”cjb.txt”中中,假设存放假设存放在在c:/cjb.txt,其格式以下其格式以下:第48页学号 姓名 平时 其中 期末 总评07*001 吴蒙蒙8566646907*002 高旭9580949107*003 李楠9278556707*004 赵利

38、冲7848404007*005 何耀龙8958516007*006 何星8544817407*007 唐佳征9573536507*008 程西平9686899007*009 陈茂琴9584697707*010 程长久9479828407*011 王锋9374868507*012 何福顺9082536607*013 罗玲9693909207*014 刘卿卿9767948907*015 张晓芳93728282072301016 杨乐遥88615060072301017 沈亮95415460072301018 高晶98769189072301020 郭慧93918387072301021 陈灿927

39、66975072301022 李婷90766975072301023 陈元俊94745969072301024 谭海梅95646370072301025 张亚琴95898588072301026 胡阳98929897072301027 张冲92606569072301028 位会敏95928287072301029 胡红96789089072301030 岳鑫璐96607979072301031 李欢欢988510097072301032 陈龙龙92656470072301033 朱盼88556668第49页读入格式为读入格式为:cjb=read.table(c:/cjb.txt,header

40、=TRUE)cjbis.data.frame(cjb)1 TRUEheader=TRUE表示第一行读入是变量名表示第一行读入是变量名,默认是默认是header=FALSE,即自动会添上列名即自动会添上列名.详细使用方法可见详细使用方法可见帮助帮助.?read.tabled=read.csv(txt.csv)#读逗号分隔文本文件读逗号分隔文本文件d=read.csv2(“txt.csv”)#读分号分隔文本文件,读分号分隔文本文件,逗号代替小数点逗号代替小数点d=read.delim(foo.txt)#读制表符分隔文件读制表符分隔文件d=read.delim2(“foo.txt”)#读制表符分隔文

41、件,读制表符分隔文件,逗号代替小数点逗号代替小数点d=read.fwf(txt.fwf)#读固定宽文件读固定宽文件第50页D=readLines(“a.txt”)#每行有不一样结构每行有不一样结构readLines(con=stdin(),n=-1L,ok=TRUE,warn=TRUE,encoding=unknown)cat(TITLE extra line,2 3 5 7,11 13 17,file=ex.data,sep=n)readLines(ex.data,n=-1)unlink(“ex.data”)#删除文件 第51页R中普通不能直接读中普通不能直接读xls文件文件,可先转换为可先

42、转换为csv(2)scan()函数函数scan()函数可直接读纯文本文件数据和直接从屏幕上函数可直接读纯文本文件数据和直接从屏幕上输数据输数据x=scan()1:2 4 4.2 55:Read 4 timesx1 2 4 4.2 5假设有假设有10名学生体重数据已输入文件名学生体重数据已输入文件”weight.txt”,格式为格式为45 63.5 32.5 67.2 77.5 55 54 49 62 70w=scan(c:/weight.txt)第52页假设假设weight.txt中中,奇数是女性体重奇数是女性体重,偶数是男性体重偶数是男性体重,即数据中有不一样属性即数据中有不一样属性wfm=

43、scan(c:/weight.txt,list(F=0,M=0)Read 5 records将数据读入将数据读入,并以列表方式赋给变量并以列表方式赋给变量wfm wfm$F1 45.0 32.5 77.5 54.0 62.0$M1 63.5 67.2 55.0 49.0 70.0其它数据格式读入能够参见帮助文档中其它数据格式读入能够参见帮助文档中R数据输入数据输入输出输出.第53页2.输出输出直接输入变量名即可输出直接输入变量名即可输出x=1:5x1 1 2 3 4 5用用print(x)与上式是等价与上式是等价,里面有些参数里面有些参数,digits指定指定每个数输出有效数字位每个数输出有效

44、数字位.options(digits=3)1/31 0.333 write.table#输出数据框到文件输出数据框到文件write.csvwrite.csv2Write.matrix#输出矩阵到文件输出矩阵到文件,需要加载包需要加载包MASS第54页cat()函数也可用来输出函数也可用来输出,但它能够把多个参数连接起来但它能够把多个参数连接起来再输出再输出(类似于类似于paste()功效功效)cat(i=,i,n)#注意为何要用注意为何要用”n”cat(c(AB,C),c(E,F),n,sep=)ABCEFcat()还能够指定一个参数还能够指定一个参数”file=文件名文件名”,把结果写到把结

45、果写到指定文件中指定文件中cat(i=,1,n,file=c:/result.txt)若指定文件存在若指定文件存在,则原内容被覆盖则原内容被覆盖,但加上但加上append=TRUE能够不覆盖原文件而是在末尾附加能够不覆盖原文件而是在末尾附加.第55页 八八 程序控制结构程序控制结构1.分支结构分支结构if(条件条件)表示式表示式或或if(条件条件)表示式表示式1 else 表示式表示式2比如比如:if(any(xn=4;x=matrix(0,nrow=4,ncol=4)for(i in 1:n)for(j in 1:n)xi,j=1/(i+j-1)第57页 x ,1 ,2 ,3 ,41,1.0

46、000000 0.5000000 0.3333333 0.25000002,0.5000000 0.3333333 0.2500000 0.0003,0.3333333 0.2500000 0.000 0.16666674,0.2500000 0.000 0.1666667 0.1428571第58页(2)while循环循环while(condtion)expr当条件当条件condtion成立成立,则执行表示式则执行表示式expr.比如比如编写一个计算编写一个计算100以内以内Fibonacci数数f=1;f2=1;i=1while(fi+fi+1f11 1 2 3 5 8 13 21 34

47、55 89 14413 233 377 610 987第59页(3)repeat循环循环repeat exprrepeat循环依赖循环依赖break语句跳出循环语句跳出循环.比如用比如用repeat循环编写一个计算循环编写一个计算100以内以内Fibonacci数数f=1;f2=1;i=1repeat fi+2=fi+fi+1 i=i+1if(fi+fi+1=1000)break f11 1 2 3 5 8 13 21 34 55 89 14413 233 377 610 987第60页三个例子三个例子myfn1-function(obs=10,n=100)x-rep(NA,100)for(i

48、 in 1:n)tmp-runif(obs)xi-mean(tmp)list(mn=mean(x),std=sd(x)Myfn1()第61页myfn2-function(obs=10)x-runif(obs)while(mean(x)0.45)obs-2*obs x-runif(obs)list(mn=mean(x),std=sd(x),obs=obs)myfn2()第62页myfn3-function(obs=10)repeat x=0.45)break obs f=function(x)x+exp(x)f(3.5)例子例子 使用使用gamma函数求函数求n!factorial=functi

49、on(n)+if(n=0)gamma(n+1)+else print(“Please input a positive integer!)+factorial(6)factorial(-6)Choose(10,5)#求组合值求组合值第64页fzero=function(f,a,b,eps=1e-5)if(f(a)*f(b)0)list(fail=“finding root is fail!”)else repeat if(abs(b-a)eps)break x=(a+b)/2 if(f(a)*f(x)f=function(x)x3-x-1 fzero(f,1,2)$root1 1.324718

50、$fun1-1.405875e-05第66页R软件提供了求一元方程根函数软件提供了求一元方程根函数uniroot()uniroot(f,interval,lower=min(interval),upper=max(interval),tol=.Machie$double.eps0.25,maxiter=1000,.)uniroot(f,c(1,2)$root1 1.324718$f.root1-5.634261e-07$iter1 7$estim.prec1 6.103516e-05第67页用于处理错误函数用于处理错误函数 用于处理用户输入不正确类用于处理用户输入不正确类型而可能出现错误型而可

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服