r语言语句组循环和条件控制.pptx
文本预览下载声明
第四讲:语句组,循环,条件控制事件处理的逻辑模式顺序执行按条件作出是否执行的判断根据某种条件变化反复执行根据不同的情况作出相应的执行一、组合表达式为实现某一功能而使各种命令表达式组合在一起形成一个复合表达式,形式一般为:{ expr_1 expr_2 … expr_n }二、条件控制语句if (condition1) statement1else if (condition2) statement2else statement3condition语句返回一逻辑值,为TRUE时执行,为FALSE时跳过逻辑运算符: #逻辑与|| #逻辑或 优先对向量的第一个元素进行运算 #逻辑与| #逻辑或!#逻辑非 按照逐个元素的方式进行计算== #恒等 #大于= #大于等于 #小于= #小于等于例子:x-8if (x=10) { x-x+10 cat(x=,x,\n) } else if (x=7) { x-x+7 cat(x=,x,\n) } else { x-x+5 cat(x=,x,\n) } x-8If (0) { #condition不为0,执行 if (x=10) { x-x+10 cat(x=,x,\n) } else if (x=7) { x-x+7 cat(x=,x,\n) } else { x-x+5 cat(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函数的计算过程两个数组的外积 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 X-matrix(1:4,nrow=2) Y-array(1:6,dim=c(3,2)) X [,1] [,2][1,] 1 3[2,] 2 4 Y [,1] [,2][1,] 1 4[2,] 2 5[3,] 3 6, , 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可以改变计算函数FUN:+,-,*,/,^ outer(Y,X,FUN=+), , 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 6outer(X,Y,FUN=“*”):提取两个矩阵的属性outer(X,Y,FUN=“*”):两个矩阵的外积计算过程定义一个数据框 Vender-paste(c(Vender),1:9,sep=) ProduceName-c(256MB DDR 400,256MB DDR 333,512MB DDR 400,+ 256MB DDR 400,256MB DDR 333,256MB SDRAM 266,+ 256MB DDR 400,256MB DDR 400,512MB DDR 400) Type-rep(c(DDR),9) Type[6]-SDRAM Mem-c(256,256,512,256,256,256,256,256,512) Frequency-c(400,333,400,400,333,266,400,400,400) Price-c(315,300,650,280,265,265,290,345,
显示全部