学习来源:https://www.w3cschool.cn/r/r_packages.html 决策:if else switch
循环:for while repeat
循环控制:next break
- 决策:
R提供了3种类型的决策语句:
决策语句 | 含义 |
if | 单分支结构 |
if…else | 二分支结构 |
if…else if…else | 多分支结构 |
switch | switch语句允许根据值列表测试变量的相等性。 |
在R中创建if语句的基本语法:
if(boolean_expression) {
// statement(s) will execute if the boolean expression is true.
}在R中创建if … else语句的基本语法:
if(boolean_expression) {
// statement(s) will execute if the boolean expression is true.
} else {
// statement(s) will execute if the boolean expression is false.
}在R中创建if … else if … else语句的基本语法:
if(boolean_expression 1) {
// Executes when the boolean expression 1 is true.
} else if( boolean_expression 2) {
// Executes when the boolean expression 2 is true.
} else if( boolean_expression 3) {
// Executes when the boolean expression 3 is true.
} else {
// executes when none of the above condition is true.
}在R中创建switch语句的基本语法:
switch(expression, case1, case2, case3…)
switch语句详解:
(1)switch语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且针对每种情况检查打开的变量
(2)以下规则适用于switch语句:
如果expression的值不是字符串,那么它被强制为整数。
在交换机中可以有任意数量的case语句。 每个案例后面都跟要比较的值和冒号。
如果整数的值在1和nargs() - 1(参数的最大数目)之间,则对case条件的相应元素求值并返回结果。
如果表达式求值为字符串,那么该字符串与元素的名称匹配。
如果有多个匹配,则返回第一个匹配元素。
无默认参数可用。
在没有匹配的情况下,如果有一个未命名的元素…它的值被返回。 (如果有多个这样的参数,则返回错误。)
(3)switch语句的流程图:
(4)例子:
> x <- switch(
3,
"first",
"second",
"third",
"fourth"
)
print(x)
> [1] "third"
2. 循环
(1)R编程语言提供以下3个种类的循环来处理循环需求
循环类型 | 描述 |
repeat循环 | repeat循环重复执行相同的代码,直到满足停止条件。 |
while循环 | while循环的关键点是循环可能永远不会运行。 当条件被测试并且结果为false时,循环体将被跳过,while循环之后的第一条语句将被执行。 |
for循环 | for循环是一种重复控制结构,允许有效地编写需要执行特定次数的循环。它不限于整数,或者输入中的偶数。 它可以传递字符向量,逻辑向量,列表或表达式。 |
在R中创建Repeat循环的基本语法是 -
repeat {
commands
if(condition) {
break
}
}在R中创建while循环的基本语法是 -
while (test_expression) {
statement
}在R中创建一个for循环语句的基本语法是 -
for (test_expression) {
statement
}
>#repeat循环
v <- c("Hello","loop")
cnt <- 2
repeat {
print(v)
cnt <- cnt+1
if(cnt > 5) {
break
}
}
>[1] "Hello" "loop"
[1] "Hello" "loop"
[1] "Hello" "loop"
[1] "Hello" "loop"
>
>#while循环
>v <- c("Hello","while loop")
cnt <- 2
while (cnt < 7) {
print(v)
cnt = cnt + 1
}
>[1] "Hello" "while loop"
[1] "Hello" "while loop"
[1] "Hello" "while loop"
[1] "Hello" "while loop"
[1] "Hello" "while loop"
>
>#for循环
>v <- LETTERS[1:4]
for ( i in v) {
print(i)
}
>[1] "A"
[1] "B"
[1] "C"
[1] "D"
(2)循环控制语句
控制语句 | 含义 |
break | 终止循环语句,并将执行转移到循环后立即执行的语句。 |
next | next等同于其他语言的continue |
> v <- LETTERS[1:6]
for ( i in v) {
if (i == "D") {
next
}
print(i)
}
>
>[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"