Menu
CoddyTech

遍历向量元素

本课属于 Coddy R 学习旅程的“基础知识”单元。第 63 课,共 78 课。

虽然 R 的向量化操作很强大,但有时你需要使用自定义逻辑逐个处理元素。for 循环可以让你一次遍历一个向量元素。

遍历向量最简单的方法是直接迭代其中的元素:

fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

输出:

[1] "apple"
[1] "banana"
[1] "cherry"

每次迭代时,循环变量 fruit 都会取向量中下一个元素的值。当你只需要这些值本身时,这种写法简洁易读。

你可以将迭代与条件逻辑结合起来,有选择地处理元素:

numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
  if (num > 5) {
    print(num)
  }
}

输出:

[1] 8
[1] 10

当你需要根据每个元素的值执行不同操作时,这种模式很有用,因为仅靠向量化操作并不总能实现这一点。

challenge icon

挑战

简单

你会收到两行输入:

  1. 一个以逗号分隔的数字列表(例如,12,5,18,3,25,8,14)
  2. 一个阈值(例如,10)

使用 for 循环遍历向量中的元素:

  1. 根据以逗号分隔的数字创建一个向量
  2. 遍历向量中的每个元素
  3. 对于每个大于或等于阈值的元素,使用 print() 打印该元素

例如,如果输入是:

4,15,8,22,6,19,11
10

输出应该是:

[1] 15
[1] 22
[1] 19
[1] 11

说明:循环会将每个元素与阈值(10)进行比较。15、22、19 和 11 都大于或等于 10,因此会被打印出来。4、8 和 6 会被跳过。

亲手试试

# 读取输入
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)

# 将逗号分隔的字符串转换为数值向量
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))

# TODO: 在下方编写你的代码
# 用 for 循环遍历 numbers 向量
# 对于每个满足 >= threshold 的元素,用 print() 打印它
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: R 在线编译器