入门必学 | R语言for循环入门指导

文章目录

在R语言中,「迭代」是一种减少重复代码的重要工具。它的作用在于可以对多个输入执行同一种处理,比如对多个列或多个数据集进行同样的操作。本节我们将介绍一种重要的迭代方式:for循环。for循环的运行过程十分简洁明了,是掌握迭代的很好的学习起点。

何为for循环

在R语言中,当你希望相同的代码块使用不同的输入值执行多次时。你可以利用for循环对一个序列或数组进行迭代,然后在for循环中进行(子)数据的创建、修改与分析等多种操作,执行你想重复多次的运算。

一个基本的for循环的结构如下:

r 复制代码
output<- #输出
for (i in sequence) {#序列
  # 每次迭代时要执行的代码 #循环体
}

每个for循环都包括3个部分.

-「输出output」:在开始循环前,你必须为输出结果分配足够的空间,并提供一个"盒子"把你的循环结果装起来。根据结果的类型,可以为向量,数据框或者列表等。

-「序列i in sequence」:这部分确定了使用哪些值来进行循环,每一轮for循环都会赋予i一个来自sequence的不同的值。因此,你可以把i看成一个代词,在每次重复中,i都会发生变化。

-「循环体」:这部分就是执行具体操作的代码。它们会重复运行,每次运行都使用一个不同的i值。

我们什么时候该使用for循环

假设我们有以下这样一个简单的数据集

r 复制代码
set.seed(123)
df<- data.frame(
a = rnorm(10),
b = rnorm(10), 
c = rnorm(10), 
d = rnorm(10))

> df
             a          b          c           d
1  -0.56047565  1.2240818 -1.0678237  0.42646422
2  -0.23017749  0.3598138 -0.2179749 -0.29507148
3   1.55870831  0.4007715 -1.0260044  0.89512566
4   0.07050839  0.1106827 -0.7288912  0.87813349
5   0.12928774 -0.5558411 -0.6250393  0.82158108
6   1.71506499  1.7869131 -1.6866933  0.68864025
7   0.46091621  0.4978505  0.8377870  0.55391765
8  -1.26506123 -1.9666172  0.1533731 -0.06191171
9  -0.68685285  0.7013559 -1.1381369 -0.30596266
10 -0.44566197 -0.4727914  1.2538149 -0.38047100

我们想要计算出每列的平均数。完全可以使用复制粘贴来完成这个任务:

r 复制代码
> mean(df$a)
[1] 0.07462564
> mean(df$b)
[1] 0.208622
> mean(df$c)
[1] -0.4245589
> mean(df$d)
[1] 0.3220446

但这样做就违反了我们的经验法则:永远不要复制粘贴超过2次。相反,我们应该使用for循环:

r 复制代码
output<- c() #输出
for (i in 1:ncol(df)) { #序列
  output[i] <- mean(df[,i]) #循环体
} 

> output
[1]  0.07462564  0.20862196 -0.42455887  0.32204455

这样就自动得到了我们想要的结果。细节可以参考文中代码,有疑惑可以留言讨论~

相关推荐
励志不掉头发的内向程序员几秒前
STL库——string(类函数学习)
开发语言·c++
一百天成为python专家28 分钟前
Python循环语句 从入门到精通
开发语言·人工智能·python·opencv·支持向量机·计算机视觉
Sunhen_Qiletian32 分钟前
朝花夕拾(五)--------Python 中函数、库及接口的详解
开发语言·python
hqwest41 分钟前
C#WPF实战出真汁07--【系统设置】--菜品类型设置
开发语言·c#·wpf·grid设计·stackpanel布局
前路不黑暗@1 小时前
C语言:操作符详解(二)
c语言·开发语言·经验分享·笔记·学习·学习方法·visual studio
深盾科技2 小时前
Kotlin Data Classes 快速上手
android·开发语言·kotlin
zzywxc7872 小时前
详细探讨AI在金融、医疗、教育和制造业四大领域的具体落地案例,并通过代码、流程图、Prompt示例和图表等方式展示这些应用的实际效果。
开发语言·javascript·人工智能·深度学习·金融·prompt·流程图
浮灯Foden2 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
淡海水3 小时前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
Q_Q19632884753 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php