R语言语句组循环条件控制.ppt

上传人:牧羊曲112 文档编号:6518013 上传时间:2023-11-08 格式:PPT 页数:26 大小:345.97KB
返回 下载 相关 举报
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)statement1else if(condition2)statement2else 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 NA)return(NA_real_),例子:,例子:分析outer函数的计算过程,X Y X,1

3、,21,1 32,2 4 Y,1,21,1 42,2 53,3 6,outer(Y,X)#Y%o%X,1,1,1,21,1 42,2 53,3 6,2,1,1,21,2 82,4 103,6 12,1,2,1,21,3 122,6 153,9 18,2,2,1,21,4 162,8 203,12 24,两个数组的外积,outer(Y,X,FUN=+),1,1,1,21,2 52,3 63,4 7,2,1,1,21,3 62,4 73,5 8,1,2,1,21,4 72,5 83,6 9,2,2,1,21,5 82,6 93,7 10,X,1,21,1 32,2 4 Y,1,21,1 42,2

4、53,3 6,可以改变计算函数FUN:+,-,*,/,outer(X,Y,FUN=“*”):提取两个矩阵的属性,outer(X,Y,FUN=“*”):两个矩阵的外积计算过程,Vender ProduceName Type Type6 Mem Frequency Price MemInfo MemInfo Vender ProduceName Type Mem Frequency Price1 Vender1 256MB DDR 400 DDR 256 400 3152 Vender2 256MB DDR 333 DDR 256 333 3003 Vender3 512MB DDR 400 DD

5、R 512 400 6504 Vender4 256MB DDR 400 DDR 256 400 2805 Vender5 256MB DDR 333 DDR 256 333 2656 Vender6 256MB SDRAM 266 SDRAM 256 266 2657 Vender7 256MB DDR 400 DDR 256 400 2908 Vender8 256MB DDR 400 DDR 256 400 3459 Vender9 512MB DDR 400 DDR 512 400 575,定义一个数据框,rep(expensive,length(MemInfo$Price)-ExpS

6、tr rep(cheap,length(MemInfo$Price)-CheapStr ifelse(MemInfo$Price300,ExpStr,CheapStr)-PriceDescription PriceDescription1 expensive cheap expensive cheap cheap“cheap 7 cheap expensive expensive,Ifelse(condiction,a,b)#这个表达式返回一个向量,其长度为a,b中的最大长度.当conditioni为真时返回ai,否则返回bi.,例子:根据内存的基本数据,我们定义价格大于300的内存的价格为e

7、xpensive,否则为cheap,练习4.1,自行设计一个条件控制例子,条件中包含逻辑运算符号&,|和!,三、循环,for循环 for(name in statement)expr#其中name为循环;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的正态分布随机向量,并找出该向量的最小值及其出现的位置

8、,norm-rnorm(100,1,1)#随机向量 min.norm-100#设定初始最大值 for(i in 1:100)if(normi=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=

9、i,for(j in 1:100)min.n-0 norm-rnorm(100,1,1)min.normj-100 for(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 r

10、epeat+if(MemInfo$Memcount=256)+MemInfo$Pricecountlength(MemInfo$Price)+break+MemInfo Vender ProduceName Type Mem Frequency Price1 Vender1 256MB DDR 400 DDR 256 400 346.52 Vender2 256MB DDR 333 DDR 256 333 330.03 Vender3 512MB DDR 400 DDR 512 400 650.04 Vender4 256MB DDR 400 DDR 256 400 308.05 Vender

11、5 256MB DDR 333 DDR 256 333 291.56 Vender6 256MB SDRAM 266 SDRAM 256 266 291.57 Vender7 256MB DDR 400 DDR 256 400 319.08 Vender8 256MB DDR 400 DDR 256 400 379.59 Vender9 512MB DDR 400 DDR 512 400 575.0,例子:将容量为256M的内存的价格普调增长10%,四、分支控制语句,switch(statement,list)#switch语句根据判定条件的不同而执行不同的分支语句。首先执行statement

12、,其返回值范围为1到list的长度。Switch语句执行list中包含的语句,并将结果返回。,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$Pr

13、icecount*1.12),例子:将频率为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),以作业的形式提交本练习的原程序,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号