遍历向量元素
本课属于 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当你需要根据每个元素的值执行不同操作时,这种模式很有用,因为仅靠向量化操作并不总能实现这一点。
挑战
简单你会收到两行输入:
- 一个以逗号分隔的数字列表(例如,
12,5,18,3,25,8,14) - 一个阈值(例如,
10)
使用 for 循环遍历向量中的元素:
- 根据以逗号分隔的数字创建一个向量
- 遍历向量中的每个元素
- 对于每个大于或等于阈值的元素,使用
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() 打印它这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: R 在线编译器