R语言学习笔记(四)-决策与循环

Python& AI 2018-07-29 310 次浏览 0 条评论

4.1 决策

4.1.1 if语句

if语句由一个布尔表达式后跟一个或多个语句组成。

if(boolean_expression) {

// statement(s) will execute if the boolean expression is true.

}

 

4.1.2 If...Else语句

if语句后面可以是一个可选的else语句,当布尔表达式为false时执行。

在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.

}

如果布尔表达式的计算结果为真,则将执行if代码块,否则将执行else代码块。

 

4.1.3 if ... else if ... else语句

if语句后面可以跟一个可选的else if ... else语句,这对于使用single if ... else if语句测试各种条件非常有用。

当使用if,else if,else语句有几点要记住。

如果可以有零或一个else,它必须在任何其他if之后。

一个if可以有0到许多else if和它们必须在else之前。

一旦一个else如果成功,没有任何剩余的else if或else将被测试。

在R中创建if ... else if ... else语句的基本语法是 -

if(boolean_expression 1) {</span>

// 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.

}

 

4.1.4 Switch语句

switch语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且针对每种情况检查打开的变量。

在R中创建switch语句的基本语法是 -

switch(expression, case1, case2, case3....)

以下规则适用于switch语句:

  • 如果expression的值不是字符串,那么它被强制为整数。
  • 在交换机中可以有任意数量的case语句。 每个案例后面都跟要比较的值和冒号。
  • 如果整数的值在1和nargs() - 1(参数的最大数目)之间,则对case条件的相应元素求值并返回结果。
  • 如果表达式求值为字符串,那么该字符串与元素的名称匹配。
  • 如果有多个匹配,则返回第一个匹配元素。
  • 无默认参数可用。
  • 在没有匹配的情况下,如果有一个未命名的元素...它的值被返回。 (如果有多个这样的参数,则返回错误。)

x <- switch(

4,

"first",

"second",

"third",

"fourth"

)

print(x)

当上面的代码被编译和执行时,它产生以下结果 -

[1] "third"

 

4.2 循环

4.2.1 Repeat循环

Repeat循环重复执行相同的代码,直到满足停止条件。

在R中创建Repeat循环的基本语法是 -

repeat {

commands

if(condition) {

break

}

}

 

4.2.2 While循环

While循环一次又一次地执行相同的代码,直到满足停止条件。

在R中创建while循环的基本语法是 -

while (test_expression) {

statement

}

 

4.2.3 For循环

or循环是一种重复控制结构,允许您有效地编写需要执行特定次数的循环。

在R中创建一个for循环语句的基本语法是 -

for (test_expression) {

statement

}

R的for循环是特别灵活的,因为它们不限于整数,或者输入中的偶数。 我们可以传递字符向量,逻辑向量,列表或表达式。

v <- LETTERS[1:4]

for ( i in v) {

print(i)

}

当上面的代码被编译和执行时,它产生以下结果 -

[1] "A"

[1] "B"

[1] "C"

[1] "D"

 

4.2.4 break语句

R语言中的break语句有以下两种用法:

当在循环中遇到break语句时,循环立即终止,并且程序控制在循环之后的下一语句处恢复。

它可以用于终止switch语句中的情况。

v <- c("Hello","loop")

cnt <- 2

repeat {

print(v)

cnt <- cnt + 1

&nbsp;

if(cnt > 5) {

break

}

}

 

4.2.5 next语句

R语言存在next语句,当我们想跳过循环的当前迭代而不终止它时便可使用next。 遇到next时,R解析器跳过本次迭代,并开始循环的下一次迭代。

v <- LETTERS[1:6]

for ( i in v) {

&nbsp;

if (i == "D") {

next

}

print(i)

}

当上面的代码被编译和执行时,它产生以下结果 -

[1] "A"

[1] "B"

[1] "C"

[1] "E"

[1] "F"

微信扫一扫,分享到朋友圈

R语言学习笔记(四)-决策与循环
梓沨

站长 INTP,生物搬砖工