美文网首页
2019-11-22R语言-day5 控制程序

2019-11-22R语言-day5 控制程序

作者: Courage_c2bc | 来源:发表于2019-11-22 15:23 被阅读0次

1 条件语句If-else

如果条件成立,程序就做某件事;否则(另一种条件下),程序做另一件事。

if(<condition>) {
    ## do something
} else {
   ## do something else
}
if(<condition1>) {
    ## do something
} else if(<condition2>)  {
    ## do something different
} else {
    ## do something different
}

eg:

x <- 8
if(x<6) { 
    y<- 10 
} else { 
    y <- 0
}  #如果x<6,则y为10,如果x不<6,则y为0

等同于

y <- if(x > 3) {
    10
} else { 
    0
}

else语句不是必须的。

R中,条件语句不是向量型运算。如果条件语句是由一个以上的逻辑值组成的向量,那么执行该语句时只会用到向量的第1个元素。
eg:

x <- 10
y <- seq(6,17)
if (x < y) x else y

Warning message: In if (x < y) x else y : the condition has length > 1 and only the first element will be used
如果我们想要执行向量化的运算,这时候可以采用ifelse函数:

> x <- 10
> y <- seq(6,17)
> ifelse(x<y, x, y)    #如果x<y,则输出x,否则,输出y
 [1]  6  7  8  9 10 10 10 10 10 10 10 10

()定义函数的参数 ()在运算中作为优先级 [] 用做对象的元素索引 {} 作为代码段落的起止


2 switch

switch语句主要用于处理数字或者字符串,并根据输入返回某个分支。
switch(EXPR, ...)
判断,EXPR与后面…所表示的等式左侧进行匹配,若匹配上则运行等式右侧的命令;

假设输入一个整数n,switch返回从第1个参数开始的第n个参数值,如果输入的整数超出了范围,无法匹配相应参数值:

switch(2,"ni","wo")
[1] "wo"

3 循环

3.1repeat循环,只是重复同一个表达式

repeat expression

若要退出循环,则用break命令。

eg:输出所有不大于25的5的倍数

> i <- 5
> repeat {if (i > 25) break else{print(i); i <- i + 5;}}
[1] 5
[1] 10
[1] 15
[1] 20
[1] 25

3.2 while循环

while,该结构在某个条件为真时,重复某个特定的表达式:

while (condition) expression

eg:输出所有不大于25的5的倍数。

> i <- 5
> while (i <= 25) {print(i); i <- i + 5}
[1] 5
[1] 10
[1] 15
[1] 20
[1] 25

3.3 for循环

该结构遍历向量或列表中的每一个项目

for (var in seq) {expr}

var表示循环变量,seq为向量,expr为执行的语句。

eg:输出所有不大于25的5的倍数

> for (i in seq(from=5,to=25,by=5)){print(i)}
[1] 5
[1] 10
[1] 15
[1] 20
[1] 25

相关文章

网友评论

      本文标题:2019-11-22R语言-day5 控制程序

      本文链接:https://www.haomeiwen.com/subject/fmrfwctx.html