📌  相关文章
📜  R 编程中的决策——if、if-else、if-else-if 阶梯、嵌套 if-else 和 switch(1)

📅  最后修改于: 2023-12-03 14:46:52.882000             🧑  作者: Mango

R 编程中的决策

在 R 编程中,可以使用不同类型的决策语句来根据条件执行特定的操作。这些决策语句包括 if、if-else、if-else-if 阶梯、嵌套 if-else 和 switch。

if 语句

if 语句用于检查某个条件是否为真,并在条件为真时执行相应的代码段。if 语句的语法如下:

if (condition) {
  # code to be executed if condition is TRUE
}

其中,condition 是一个逻辑表达式,执行代码段的条件为真时为 TRUE,否则为 FALSE。在 if 语句中,condition 必须为逻辑表达式或逻辑向量。

以下是一个使用 if 语句的示例:

x <- 2
if (x > 1) {
  print("x is greater than 1")
}

在这个例子中,由于 x 的值为 2,因此 x > 1 的结果为 TRUE,这将导致 if 语句中的代码段被执行,打印出 x is greater than 1

if-else 语句

if-else 语句在 if 语句的基础上添加了 else 子句,以便在条件不成立时执行其他代码。if-else 语句的语法如下:

if (condition) {
  # code to be executed if condition is TRUE
} else {
  # code to be executed if condition is FALSE
}

在 if-else 语句中,当 condition 的结果为 TRUE 时,执行 if 代码段中的代码,否则执行 else 代码段中的代码。

以下是一个使用 if-else 语句的示例:

x <- 0
if (x > 1) {
  print("x is greater than 1")
} else {
  print("x is less than or equal to 1")
}

在这个例子中,由于 x 的值为 0,因此 x > 1 的结果为 FALSE,这将导致 else 代码段中的代码被执行,打印出 x is less than or equal to 1

if-else-if 阶梯

if-else-if 阶梯是一系列的 if 和 else-if 语句,用于区分多个条件。if-else-if 阶梯的语法如下:

if (condition1) {
  # code to be executed if condition1 is TRUE
} else if (condition2) {
  # code to be executed if condition2 is TRUE
} else {
  # code to be executed if all conditions are FALSE
}

在 if-else-if 阶梯中,当 condition1 的结果为 TRUE 时,执行 if 代码段中的代码,否则检查下一个条件,即 condition2。如果 condition2 的结果为 TRUE,执行 else-if 代码段中的代码,否则执行 else 代码段中的代码。

以下是一个使用 if-else-if 阶梯的示例:

x <- 0
if (x > 1) {
  print("x is greater than 1")
} else if (x == 1) {
  print("x is equal to 1")
} else {
  print("x is less than 1")
}

在这个例子中,由于 x 的值为 0,因此 x > 1 的结果为 FALSEx == 1 的结果也为 FALSE,这将导致 else 代码段中的代码被执行,打印出 x is less than 1

嵌套 if-else 语句

嵌套 if-else 语句是用于嵌套多个 if 和 else 语句的方法。通过嵌套,可以使代码更加复杂和灵活。嵌套 if-else 语句的语法如下:

if (condition1) {
  # code to be executed if condition1 is TRUE
  if (condition2) {
    # code to be executed if both condition1 and condition2 are TRUE
  } else {
    # code to be executed if condition1 is TRUE but condition2 is FALSE
  }
} else {
  # code to be executed if condition1 is FALSE
}

在嵌套 if-else 语句中,首先检查 condition1 是否为 TRUE。如果是,则检查 condition2 是否为 TRUE。如果 condition1condition2 都为 TRUE,执行内部 if 语句中的代码,否则执行内部 else 语句中的代码。如果 condition1 不为 TRUE,执行外部 else 代码段中的代码。

以下是一个使用嵌套 if-else 语句的示例:

x <- 2
y <- 3
if (x == 2) {
  if (y == 3) {
    print("x is equal to 2 and y is equal to 3")
  } else {
    print("x is equal to 2 but y is not equal to 3")
  }
} else {
  print("x is not equal to 2")
}

在这个例子中,由于 x 的值为 2,y 的值为 3,因此两个条件都满足,打印出 x is equal to 2 and y is equal to 3

switch 语句

switch 语句是一种多分支语句,用于根据给定的条件执行特定的代码。switch 语句的语法如下:

switch(EXPR,
       CASE1,
       CASE2,
       ...
       [DEFAULT])

其中,EXPR 是要测试的表达式,CASE1CASE2 等是要执行的代码块,DEFAULT 是可选项,表示 EXPR 的值不匹配任何条件时要执行的代码块。

以下是一个使用 switch 语句的示例:

x <- 1
result <- switch(x,
                 "First case",
                 "Second case",
                 "Third case")
 
print(result)

在这个例子中,由于 x 的值为 1,因此执行第一个 case 块中的代码,将 result 设为 First case,最终打印出 First case。如果 x 的值为 2,将执行第二个 case 块中的代码,将 result 设为 Second case。如果 x 的值为其他值,将执行 default 块中的代码(如果存在)。