第四讲R语言语句组循环和条件控制ppt课件

上传人:我*** 文档编号:148653896 上传时间:2020-10-21 格式:PPTX 页数:26 大小:194.50KB
返回 下载 相关 举报
第四讲R语言语句组循环和条件控制ppt课件_第1页
第1页 / 共26页
第四讲R语言语句组循环和条件控制ppt课件_第2页
第2页 / 共26页
第四讲R语言语句组循环和条件控制ppt课件_第3页
第3页 / 共26页
第四讲R语言语句组循环和条件控制ppt课件_第4页
第4页 / 共26页
第四讲R语言语句组循环和条件控制ppt课件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《第四讲R语言语句组循环和条件控制ppt课件》由会员分享,可在线阅读,更多相关《第四讲R语言语句组循环和条件控制ppt课件(26页珍藏版)》请在金锄头文库上搜索。

1、第四讲:语句组,循环,条件控制,事件处理的逻辑模式,顺序执行 按条件作出是否执行的判断 根据某种条件变化反复执行 根据不同的情况作出相应的执行,一、组合表达式,为实现某一功能而使各种命令表达式组合在一起形成一个复合表达式,形式一般为: expr_1 expr_2 expr_n ,二、条件控制语句,if (condition1) statement1 else if (condition2) statement2 else statement3,condition语句返回一逻辑值,为TRUE时执行,为FALSE时跳过,逻辑运算符: & #逻辑与 | #逻辑或 优先对向量的第一个元素进行运算 &

2、#逻辑与 | #逻辑或 ! #逻辑非 按照逐个元素的方式进行计算 = #恒等 #大于 = #大于等于 #小于 = #小于等于,x=10) x=,x,n) else if (x=7) x=,x,n) else x=,x,n) ,例子:,x=10) x=,x,n) else if (x=7) x=,x,n) else x=,x,n) ,X-1:9 #x-paste(c(X,Y),1:10,sep=) If (!is.numeric(x) & !plex(x) & !is.logical(x) warning(argument is not numeric or logical: returning

3、 NA) return(NA_real_) ,例子:,例子:分析outer函数的计算过程, X Y X ,1 ,2 1, 1 3 2, 2 4 Y ,1 ,2 1, 1 4 2, 2 5 3, 3 6, outer(Y,X) #Y%o%X , , 1, 1 ,1 ,2 1, 1 4 2, 2 5 3, 3 6 , , 2, 1 ,1 ,2 1, 2 8 2, 4 10 3, 6 12, , 1, 2 ,1 ,2 1, 3 12 2, 6 15 3, 9 18 , , 2, 2 ,1 ,2 1, 4 16 2, 8 20 3, 12 24,两个数组的外积, outer(Y,X,FUN=+) ,

4、, 1, 1 ,1 ,2 1, 2 5 2, 3 6 3, 4 7 , , 2, 1 ,1 ,2 1, 3 6 2, 4 7 3, 5 8, , 1, 2 ,1 ,2 1, 4 7 2, 5 8 3, 6 9 , , 2, 2 ,1 ,2 1, 5 8 2, 6 9 3, 7 10, X ,1 ,2 1, 1 3 2, 2 4 Y ,1 ,2 1, 1 4 2, 2 5 3, 3 6,可以改变计算函数FUN:+,-,*,/,outer(X,Y,FUN=“*”):提取两个矩阵的属性,outer(X,Y,FUN=“*”):两个矩阵的外积计算过程, Vender ProduceName Type T

5、ype6 Mem Frequency Price MemInfo MemInfo Vender ProduceName Type Mem Frequency Price 1 Vender1 256MB DDR 400 DDR 256 400 315 2 Vender2 256MB DDR 333 DDR 256 333 300 3 Vender3 512MB DDR 400 DDR 512 400 650 4 Vender4 256MB DDR 400 DDR 256 400 280 5 Vender5 256MB DDR 333 DDR 256 333 265 6 Vender6 256MB

6、 SDRAM 266 SDRAM 256 266 265 7 Vender7 256MB DDR 400 DDR 256 400 290 8 Vender8 256MB DDR 400 DDR 256 400 345 9 Vender9 512MB DDR 400 DDR 512 400 575,定义一个数据框, rep(expensive,length(MemInfo$Price)-ExpStr rep(cheap,length(MemInfo$Price)-CheapStr ifelse(MemInfo$Price300,ExpStr,CheapStr)-PriceDescription

7、PriceDescription 1 expensive cheap expensive cheap cheap“ cheap 7 cheap expensive expensive,Ifelse (condiction,a,b) #这个表达式返回一个向量,其长度为a,b中的最大长度.当conditioni为真时返回ai,否则返回bi.,例子:根据内存的基本数据,我们定义价格大于300的内存的价格为expensive,否则为cheap,练习4.1,自行设计一个条件控制例子,条件中包含逻辑运算符号&,|和!,三、循环,for循环 for (name in statement) expr #其中n

8、ame为循环;statement一般为一向量;expr一般为组合表达式, for (n in c(2,5,10,20,50) + + x-rnorm(n) + cat(n,:,sum(x2),n) + 2 : 0.4124139 5 : 5.202875 10 : 13.96513 20 : 20.07696 50 : 58.16209,例子,例子:定义一个长度为100、mean=1,sd=1的正态分布随机向量,并找出该向量的最小值及其出现的位置,norm-rnorm(100,1,1) #随机向量 min.norm-100 #设定初始最大值 for (i in 1:100) if (normi

9、=min.norm) min.norm=normi min.count=i ,#第i个值与现有最大值做比较,如果比最大值大则更新最大值,并记录位置,否则不做处理,练习4.2,找出以上向量的最大值及其出现的位置。 找处100次产生的随机向量的最小值于出现位置的关系。(用plot(min.count,min.norm)表示,其中min.count为位置向量,min.norm为最小值向量),norm=max.norm) max.norm=normi max.count=i ,for (j in 1:100) min.n-0 norm-rnorm(100,1,1) min.normj-100 for

10、(i in 1:100) if (normi=min.normj) min.normj=normi min.countj=i plot(min.count,min.norm),其他循环形式,repeat循环 repeat expr #组合表达式 break #达到结束循环的条件,跳处循环 ,while循环 while (condition) expr ,#while循环中首先执行condition语句,当condition语句的执行结果为TRUE时,执行expr,否则结束循环, count repeat + + if(MemInfo$Memcount=256) + MemInfo$Pricec

11、ountlength(MemInfo$Price) + break + MemInfo Vender ProduceName Type Mem Frequency Price 1 Vender1 256MB DDR 400 DDR 256 400 346.5 2 Vender2 256MB DDR 333 DDR 256 333 330.0 3 Vender3 512MB DDR 400 DDR 512 400 650.0 4 Vender4 256MB DDR 400 DDR 256 400 308.0 5 Vender5 256MB DDR 333 DDR 256 333 291.5 6

12、Vender6 256MB SDRAM 266 SDRAM 256 266 291.5 7 Vender7 256MB DDR 400 DDR 256 400 319.0 8 Vender8 256MB DDR 400 DDR 256 400 379.5 9 Vender9 512MB DDR 400 DDR 512 400 575.0,例子:将容量为256M的内存的价格普调增长10%,四、分支控制语句,switch(statement,list) #switch语句根据判定条件的不同而执行不同的分支语句。首先执行statement,其返回值范围为1到list的长度。Switch语句执行lis

13、t中包含的语句,并将结果返回。,for (count in 1:length(MemInfo$Price) if (MemInfo$Frequencycount=266) case-1 else if(MemInfo$Frequencycount=333) case-2 else case-3 switch(case, MemInfo$Pricecount-MemInfo$Pricecount*1.1 , MemInfo$Pricecount-MemInfo$Pricecount*1.15 , MemInfo$Pricecount-MemInfo$Pricecount*1.12 ) ,例子:将

14、频率为266,333,400的内存的价格分别增加10%,15%,12%,countlength(MemInfo$Price) break ,switch语句中的statement部分可以直接返回字符型矢量,并根据返回结果做相应处理。,练习4.3,从小写字母表的前5个中随机抽取一个字母,并按抽取字母的不同做以下操作: a:用apply函数按列来求出datasets包中数据命名为ability.cov的数据列表的第一个元素(cov)的均值 b:读取datasets包中命名为beaver1的数据框的第三列中的前25个元素,并求其方差(sd) c:画出datasets包中命名为cars的数组中Speed and Stopping Distances of Cars 的散点图(plot) d:清除控制台中包含“m”字符的对象 e:运行demo函数的帮助例子(example),以作业的形式提交本练习的原程序,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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