R 循环学习笔记
for 循环
for
循环是一种常见的用于在 R 中多次执行相同操作的循环结构。它通常适用于已知要重复执行多少次的情况。
以下是一个 for
循环的基本语法:
rCopy Codefor (variable in sequence) {
statement
}
其中,variable
是在每个循环迭代中存储当前值的变量名,sequence
是要迭代的对象(例如数字序列或向量),statement
是要在每个迭代中执行的操作。
下面是一个使用 for
循环计算 1 到 10 的平方的示例代码:
rCopy Codefor (i in 1:10) {
print(i^2)
}
这将输出从 1 到 10 的平方数。
while 循环
while
循环是另一种常见的循环结构,用于在满足特定条件时重复执行操作。在 while
循环中,循环体中的语句将一直重复执行,直到给定条件不再为真。
以下是一个 while
循环的基本语法:
rCopy Codewhile (condition) {
statement
}
其中,condition
是要测试的条件。只有当条件为 TRUE
时,循环体中的语句才会被执行。当条件为 FALSE
时,循环体中的语句将不再执行。
下面是一个示例使用 while
循环计算 从1开始的斐波那契数列的代码:
rCopy Codea <- 0
b <- 1
while (b < 100) {
print(b)
c <- a + b
a <- b
b <- c
}
这将输出小于100的斐波那契数列。
repeat 循环
repeat
循环是一种不断重复操作,直到手动中断循环的结构。与其他循环结构不同,repeat
循环没有显式的条件来结束循环。因此,在使用 repeat
循环时,我们需要在循环体内手动添加条件,以确保循环会在某个时刻结束。
以下是一个 repeat
循环的基本语法:
rCopy Coderepeat {
statement
if (condition) {
break
}
}
其中,statement
是要在每个迭代中执行的操作。condition
是用于测试是否需要中断循环的条件。当 condition
为 TRUE
时,循环将被中断。我们在循环体中添加了 if
语句来测试 condition
并使用 break
退出循环。
下面是一个使用 repeat
循环的示例代码。该代码从用户处读取一个整数,然后计算该整数的平方根并输出它。
rCopy Coderepeat {
x <- readline("Please enter a non-negative number: ")
if (is.numeric(x) && x >= 0) {
x_sqrt <- sqrt(x)
print(paste("The square root of", x, "is", x_sqrt))
break
}
else {
print("Invalid input. Please try again.")
}
}
这将从用户处读取数字,直到输入的数字为非负数为止,并计算其平方根并输出。如果输入无效,则会提示用户重新尝试。
实例
下面是一个综合应用示例,涉及使用 for
循环和 if
语句来统计一个向量中某个值出现的次数:
rCopy Code# 创建一个包含一些数字和字符的向量
vec <- c(1, 2, 3, "a", 4, 5, "b", 6, 7, "a", 8, 9, 10, "c")
# 定义要查找的值
value <- "a"
# 使用 for 循环遍历向量中的每个元素
count <- 0
for (i in vec) {
# 使用 if 语句检查当前元素是否等于要查找的值
if (i == value) {
count <- count + 1
}
}
# 输出值出现的次数
cat(paste("The value", value, "appears", count, "times in the vector."))
这将输出在向量中出现的指定值的次数。