跳转到主要内容
模块 2 · 第 2 课(共 2)课程中的4/10~12 min
模块课程(2/2)

条件和循环

要在 R 中实现复杂的算法和过程,您需要能够控制执行哪些指令以及重复它们的次数。

条件语句

在 R 中,基本条件结构基于 if 和 else。语法与 JavaScript 或 C 等语言非常相似:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

大括号 {} 定义要根据括号内布尔表达式的结果运行的代码块。

for 循环

R 中的 for 循环用于迭代序列(例如向量或列表)中的元素。

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

在 R 中,1:3 语法是创建向量 c(1, 2, 3) 的简写方法。

我们还可以直接循环现有向量的元素:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

ifelse 函数

在 R 中,ifelse() 函数是 if-else 语句的矢量化版本。它允许您在单个操作中将条件应用于整个向量,并返回结果向量。

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

while 循环

while 循环用于重复代码块,只要特定条件保持为真 (TRUE)。必须确保条件最终变为 false,以防止无限循环。

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

自己尝试一下

锻炼#r.m2.l2.e1
尝试:0加载中...

编写一条 if-else 条件语句,检查变量 Score 是否大于或等于 60。如果是,则将状态设置为“通过”,否则将其设置为“失败”。

正在加载编辑器...
显示提示

Verifica 分数 >= 60 e assegna 状态 <- '通过' o 状态 <- '失败'

3 次尝试后可用的解决方案

锻炼#r.m2.l2.e2
尝试:0加载中...

编写一个 for 循环,迭代序列 1:5 并使用 print() 函数打印每个值。

正在加载编辑器...
显示提示

Usa la sintassi: for (i in 1:5) { print(i) }

3 次尝试后可用的解决方案

锻炼#r.m2.l2.e3
尝试:0加载中...

给定向量 v,编写一个 for 循环,迭代每个元素并使用 print() 打印其双精度 (val * 2)。

正在加载编辑器...
显示提示

循环 v 的元素: for (val in v) { print(val * 2) }

3 次尝试后可用的解决方案

锻炼#r.m2.l2.e4
尝试:0加载中...

给定向量分数,使用 ifelse() 函数检查哪些元素大于或等于 60。将结果(每个元素包含“通过”或“失败”)保存在变量 results 中。

正在加载编辑器...
显示提示

使用函数: results <- ifelse(scores >= 60, 'Pass', 'Fail')

3 次尝试后可用的解决方案

锻炼#r.m2.l2.e5
尝试:0加载中...

使用 while 循环将 x 的值加倍,直到超过 50。同时在每次迭代时递增计数器变量。

正在加载编辑器...
显示提示

使用 while 循环 (x <= 50) 并更新花括号内的 x 和 counter。

3 次尝试后可用的解决方案