r语言课件5

上传人:xh****66 文档编号:57716767 上传时间:2018-10-24 格式:PPT 页数:43 大小:853.50KB
返回 下载 相关 举报
r语言课件5_第1页
第1页 / 共43页
r语言课件5_第2页
第2页 / 共43页
r语言课件5_第3页
第3页 / 共43页
r语言课件5_第4页
第4页 / 共43页
r语言课件5_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《r语言课件5》由会员分享,可在线阅读,更多相关《r语言课件5(43页珍藏版)》请在金锄头文库上搜索。

1、计算机与R语言,目录,计算机与R语言,第一章 网络基础知识及R介绍第二章 R语言基础第三章 数据的存储与读取第四章 R的图形功能第五章 R的程序设计第六章 综合实例,第五章 R的程序设计,一、程序脚本 二、控制结构 三、自定义函数,一 、程序脚本,对于一些经常需要使用的命令,可以将其保存为程序脚本,并以扩展名为“.R”文件保存到工作目录中。 例如:选择“文件”菜单中的“新建程序脚本”选项,在打开的R编辑器中,输入如下命令: x-round(runif(100,1,10),1) message(x) #输出x plot(x,pch=20,col=1:3,main=“100个1-10之间的随机数分

2、布图“) 保存至工作目录中,文件名为“p1.R”。,一 、基础绘图工具,运行脚本程序的三种方法: 命令方式:source(“p1.R“) 快捷键:选中所有代码,按Ctrl+R执行程序 菜单方式:选中代码,点右键选择“运行当前行或所选代码”。,二、控制结构,1、条件语句 2、循环语句,二、控制结构,条件语句 1.简单条件语句 2.多个语句形式的条件语句 3.多个条件的条件语句,二、控制结构,条件语句 1.简单条件语句 方式一: if(条件) 表达式if (条件) 表达式1 else 表达式2 方式二: ifelse(条件,yes,no),二、控制结构,1.简单条件语句 方式一:if(条件) 表达

3、式 例题1: p = 0.03 if (p!=1) p=p+1 p,填入流程图,测试:保存例题1的r脚本文件,观察p,print(p),cat(p),message(p)的区别。,二、控制结构,1.简单条件语句 方式一: if (条件) 表达式1 else 表达式2 例题2 p = 0.03 if (p 0.05!“),二、控制结构,1.简单条件语句 方式二: ifelse(条件,yes,no) 例题2: p = 0.03 ifelse(p 0.05!”) 例题3: x = 0, x, NA),例题4:x-ifelse(NA, “a“, “b“)x,二、控制结构,例题5:数据保存在r1.txt

4、中,判断r1中数据的长度,小于10 则输出相关数据的饼图,否则输出条形图。,二、控制结构,例题5:数据保存在r1.txt中,判断r1中数据的长度,小于10 则输出相关数据的饼图,否则输出条形图。 程序如下: a=read.table(“r1.txt“) if(length(a,1)3)pie(a,1,col=1:length(a,1)else barplot(a,1,col= colors()555,ylim=c(0,max(a,1)*1.2),二、控制结构,例题6:判断r1.txt中最大的数是不是偶数。,二、控制结构,例题6:判断r1.txt中最大的数是不是偶数。 a=read.table(

5、“r1.txt“) if(max(a,1)%2=0)print(“最大的数是偶数“) else print(“最大的数不是偶数“),二、控制结构,2.多个语句形式的条件语句 如果条件中需要执行多个语句,则格式为: if (条件) 语句1语句2 else 语句1语句2 ,注:其中的“ else ”要放在一行来写,否则在运行时会出错。,二、控制结构,2.多个语句形式的条件语句 例题7: 已知文本文件t2.txt中保存了圆的半径:如果该数字大于0,则计算圆的面积,否则输出“不能作为圆的半径”。,二、控制结构,2.多个语句形式的条件语句 程序代码: x0)s-round(pi*r2,2)print(“

6、半径是“,r, “的圆面积是:“,s) else print(“数字“,r,“不能构成圆!“) ,3.多个条件的条件语句 如果需要2个以上条件的则格式为: if (条件1) 语句1语句2 else if (条件2) 语句1语句2 else ,二、控制结构,例题8:使用scan()函数,输入一个数判断它是大于0、等于0或是小于0。,二、控制结构,程序代码如下: x0) result-“大于0“ else if(x=0) result-“等于0“ else result-“小于0“ message(x,result),二、控制结构,二、控制结构,循环语句 1、for循环:for (变量 in 向量

7、) 表达式 2、while循环:while (条件) 表达式 3、repeat循环:repeat 表达式 break,二、控制结构,1、for循环 for (变量 in 向量) 表达式 例题9: for(i in 1:5) print(1:i ),二、控制结构,1、for循环 for (变量 in 向量) 表达式 例题10: for(n in c(2,5,10,20,50) x - rnorm(n)cat(n,“:“, sum(x2),“n“) ,二、控制结构,1、for循环 例题11: 修改数据框dat1中letters变量值为“a”的count变量值,其值修改为3. dat1=data.f

8、rame(letters=c(“a“,“b“,“a“,“c“),count=c(1,4,2,1),二、控制结构,1、for循环 例题11: 修改数据框dat1中letters变量值为“a”的count变量值为3. dat1=data.frame(letters=c(“a“,“b“,“a“,“c“),count=c(1,4,2,1)for (i in 1:length(dat1,1) if (dat1,1i=“a“) dat1,2i=3,二、控制结构,1、for循环 例题12:x向量的值为1000个10以内(包括10)的随机整数,产生一个长度与x相等的y向量,对于x中值为3的元素,y的对应元素赋

9、值为0,其余赋值为1。计算y中有多少个0。,二、控制结构,1、for循环 程序如下: x-round(runif(1000,1,10) y-rep(0,1000) #产生与x长度相等的y数值型向量 for(i in 1:length(x)if(xi=3) yi-0 else yi-1 length(yy=0),二、控制结构,向量化 在R中一些循环和控制结构可以通过向量化避免(简化):向量化使得循环隐含在表达式中。 比如:条件语句可以用逻辑索引向量代替。 例题:,for(i in 1:length(x)if(xi=3) yi-0 else yi-1 ,程序可以改写为 yx=3-0 yx!=3-1

10、,二、控制结构,2、 while循环 while (条件) 表达式 例题13: i=1 While(i5) break ,二、控制结构,例题15:使用for循环,输出向量1:100中所有数据。 例题16:使用while循环求1+2+3+100的和。 例题17:使用repeat循环求1至100之间的奇数和。 例题18:使用for循环输出1至100之间的能够被3或5整除的数,并求和。,例题15:使用循环,输出向量1:100中所有数据。,For循环: for (i in 1:100) print(i),While循环: i-1 while (i=100) print(i) imyfun(“Relat

11、ion of x and y“,“d1.txt“) myfun(“ Relation of x and y “,“d2.txt“) myfun(“ Relation of x and y “,“d3.txt“) myfun(“ Relation of x and y “,“d4.txt“),三、自定义函数,函数的调用与其参数的位置与名字有关,假定函数foo1()有三个参数,其定义为: foo foo1(u,v,w) 按名字调用 foo1(arg3=w,arg2=v,arg1=u),三、自定义函数,函数调用可以采用定义时的默认设置。例如,函数foo2也有三个参数,定义为: foo2foo2(x)

12、 foo2(x,5,FALSE) foo2(x,arg3=FALSE) 有默认设置的函数在调用时,可以仅仅改变一个默认设置。 foo2(x,arg3=TRUE),三、自定义函数,例题:编写一个函数,求数据y=(y1,y2,yn)的均值、标准差、长度与总和。,三、自定义函数,例题:编写一个函数,求数据y=c(y1,y2,yn)的均值、标准差、长度与总和,并绘制散点图(显示为线)。 程序设计: ms-function(y)message(“均值为“,mean(y) message(“标准差为“,sd(y) message(“长度为“,length(y) message(“和为“,sum(y) pl

13、ot(y,type=“l“) ,三、自定义函数,三、自定义函数,例题:已知两样本 A: 79.98 80.04 80.02 80.04 80.03 80.03 80.04 79.97 80.05 80.03 80.02 80.00 80.02 B: 80.02 79.94 79.98 79.97 79.97 80.03 79.95 79.97 计算两样本的T统计量。 X,Y分别是两组数据的 样本均值,S1,S2是样本 方差,n1,n2为样本个数,三、自定义函数,twosam - function(y1, y2) n1 - length(y1); n2 - length(y2) yb1 - me

14、an(y1); yb2 - mean(y2) s1 - var(y1); s2 - var(y2) s A B twosam(A,B) 1 3.472245,方差的区间估计:Interval_var1-function(x,mu=Inf,alpha=0.05) n-length(x) if (muInf)S2 - sum(x-mu)2)/n; df - nelseS2 - var(x); df - n-1a-df*S2/qchisq(1-alpha/2,df)b-df*S2/qchisq(alpha/2,df)data.frame(var=S2, df=df, a=a, b=b) # qchisq()计算分布函数 ;var()计算方差,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号