R语言 for循环

for循环是什么

for 循环是 R 语言中最常用的重复执行代码 的结构,用于对向量、列表 等对象进行逐一遍历、批量处理,是数据分析、批量计算、自动化处理的核心工具。

语法格式

r 复制代码
for (变量 in 可迭代对象) {
  要重复执行的代码块
}
  • 变量:每次循环取出的一个值(自定义名称)
  • 可迭代对象:必须是向量、列表等可遍历的对象
  • 大括号:包含需要重复执行的语句

执行流程

  • 从可迭代对象中取出第一个值,赋值给变量
  • 执行大括号内的代码
  • 自动取下一个值,重复执行
  • 直到遍历完所有值,循环结束

什么是可迭代对象

核心判断标准

能被 for 循环逐个取出元素的对象,才叫可迭代对象。
R 语言判断:长度 > 1 的有序数据集合 = 可迭代。

✅ 属于可迭代对象

  1. 向量(数字向量、字符向量、逻辑向量)
  2. 列表(list)

❌ 不属于可迭代对象(不能直接遍历)

  1. 单个标量值(数字、单个逻辑值)
  2. 单个字符串 (整体算 1 个元素,不能按字母遍历
  3. NULL(无内容)
  4. 函数、表达式、公式(不是数据集合)

实例对比

  1. 单个字符串 vs 字符串向量

    • "hello"不可迭代(长度=1)
    • c("a","b","c")可迭代(长度>1)
  2. 单个数字 vs 数字向量

    • 10不可迭代
    • 1:5可迭代
  3. 列表 vs 函数

    • list(1,2,3)可迭代
    • function(){}不可迭代

🔥 高频易混淆总结

  1. 以为字符串能像 Python 一样按字母遍历
    → R 不支持,单个字符串是整体,不是字符数组。
  2. 把单个值放进 for 循环
    → 只会执行一次,不是真正遍历。
  3. 认为"只要是数据就能遍历"
    → 必须是多元素集合才能遍历。

示例

r 复制代码
# 遍历数字 1 到 5,依次输出
for (i in 1:5) {
  print(i)
}

复习:什么是paste

paste = 拼接字符串

作用:把文字 + 变量拼在一起,让输出更通顺、更好看。

语法格式:paste(内容1, 内容2, 内容3, ...)

例题1

循环计算 : 计算 1到100累计求和的结果

r 复制代码
sum <- 0
for (i in 1:100) {
  sum <- sum + i
}
print(paste("1到100的和是:", sum))

复习:if 语句与取模 %%

1. 取模运算符 %%

  • 作用:求余数
  • 判断偶数:x %% 2 == 0(除以 2 余数为 0 → 偶数)

2. if 条件语句

r 复制代码
if (条件) {
  满足条件时执行
}

例题2

使用 for 循环,计算 1~100 之间所有偶数的和

要求:用 if + %% 判断是否为偶数,最后输出总和

r 复制代码
# 初始化累加和
sum <- 0
# 循环 1~100
for (i in 1:100) {
  # 判断是否为偶数
  if (i %% 2 == 0) {
    sum <- sum + i
  }
}
# 输出结果
print(paste("1到100的偶数和为:", sum))

例题3

批量生成问候语 :已知有一组问候语:"早上好""中午好""下午好""晚上好"

请使用 for 循环 遍历这组问候语,并输出完整句子:
老师 XXXX !祝您工作顺利!

(XXXX 替换为对应的问候语)

r 复制代码
# 1. 定义问候语向量
words <- c("早上好", "中午好", "下午好", "晚上好")
# 2. for 循环遍历并输出完整句子
for (w in words) {
  print(paste("老师", w, "!祝您工作顺利!"))
}

课堂检测

一、判断题(对打√,错打×)

  1. for 循环可以重复执行一段代码,用于批量处理数据。( )
  2. R 语言中,单个字符串 "hello" 可以直接被 for 循环按字母遍历。( )
  3. 向量、列表都属于可迭代对象。( )
  4. 判断偶数可以使用条件:i %% 2 == 0。( )
  5. paste() 函数的作用是把多个内容拼接成一段文字。( )

二、单选题

  1. 下列不属于可迭代对象的是( )

    A. c(1,2,3) B. list("a","b") C. "你好" D. 1:5

  2. R 语言 for 循环的正确语法是( )

    A. for i in 1:5 {}

    B. for (i in 1:5) {}

    C. for i = 1 to 5 {}

    D. loop (i in 1:5) {}

  3. 10 %% 3 的结果是( )

    A. 3 B. 1 C. 0 D. 2

  4. 下列代码执行后,sum 的值是( )

r 复制代码
sum <- 0
for(i in 1:4){ sum <- sum + i }

A. 4 B. 6 C. 10 D. 12

  1. 要在循环中只累加偶数,应使用的判断语句是( )
    A. if(i == 2) B. if(i %% 2 == 0)
    C. if(i / 2 == 0) D. if(i % 2 == 0)

参考答案

一、判断

1.√ 2.× 3.√ 4.√ 5.√

二、单选

6.C 7.B 8.B 9.C 10.B


课堂小结

本节课我们重点学习了 R语言for循环 的使用方法与相关配套知识点,整体内容可归纳为以下几点:

  1. for循环的作用与语法

    for循环用于重复执行代码、批量处理数据 ,是数据分析中最常用的循环结构。

    标准格式:for (变量 in 可迭代对象) { 代码块 }

  2. 可迭代对象的判断

    只有长度大于1的有序数据集合 才能被遍历:

    ✅ 向量、列表属于可迭代对象;

    ❌ 单个值、单个字符串、NULL、函数等不属于可迭代对象。

    特别注意:R语言单个字符串不能按字母遍历

  3. 配套关键函数与语法

    • paste():用于文字与变量拼接,让输出更完整;
    • %%:取模运算符,常用于判断奇偶;
    • if语句:在循环中实现条件筛选
  4. 典型应用场景

    本节课通过累加求和、偶数求和、批量生成问候语 三个案例,掌握了for循环在遍历、计算、批量输出中的基本用法,为后续数据处理打下基础。

  5. 学习要点

    写循环时要结构清晰、逻辑简单,先明确遍历对象,再写循环体,最后验证结果,逐步提升代码编写能力。

相关推荐
小碗羊肉2 小时前
【从零开始学Java | 第三十二篇】方法引用(Method Reference)
java·开发语言
玖釉-2 小时前
C++ 硬核剖析:if 语句中的“双竖杠” || 到底怎么运行的?
开发语言·c++
满满和米兜2 小时前
【Java基础】- 集合-HashSet与TreeSet
java·开发语言·算法
zhangzeyuaaa2 小时前
Python推导式(Comprehensions)
开发语言·python
m0_716765232 小时前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
卷心菜狗2 小时前
Python进阶基础--面向对象编程(OOP)
开发语言·python
开心码农1号2 小时前
RabbitMQ 生产运维命令大全
linux·开发语言·ruby
网安INF2 小时前
数据结构第二章复习:线性表
java·开发语言·数据结构
aq55356002 小时前
Laravel10.X核心特性全解析
java·开发语言·spring boot·后端