如何在r中编写第一个for循环

12月2日,二千零一十五
通过

(本文首次发表于 数据科学+,并对 188bet appR博主

在本教程中,我们将了解如何在R中编写基本for循环。针对初学者,如果你还不熟悉R语言的基本语法,我们建议你先看看这个入门R教程.

概念上,循环是在特定条件下重复指令序列的一种方法。它们允许您自动处理需要重复的部分代码。听起来怪怪的?别担心,一旦我们开始使用下面的一些例子,它将变得更加清晰。

在用R写循环之前,你应该知道一件重要的事情。在网上冲浪时,你会经常读到,一个人应该避免使用R中的循环。为什么?好,这是因为R支持矢量化。简单地说,这使得计算速度更快。例如,使用循环的解决方案比使用应用函数的矢量化解决方案效率低,像是轻快的。通常最好使用后者。尽管如此,作为R的初学者,对循环和如何编写循环有一个基本的了解是很好的。如果你想进一步了解R中的矢量化概念,是个好读物。

在r中编写一个简单的for循环

让我们回到循环的概念意义。假设您想打印以下表单:年是[年]其中[年]等于2010年,2011,高达2015。您可以这样做:

打印(粘贴(“年份是”,2010)“2010年”打印(粘贴(“年份是”,2011)“2011年”打印(粘贴(“年份是”,2012)“2012年”打印(粘贴(“年份是”,2013)“2013年”打印(粘贴(“年份是”,2014)“2014年”打印(粘贴(“年份是”,2015)“2015年”

您马上就会发现这相当乏味:您一遍又一遍地重复相同的代码块。这违反了干燥原则,在每种编程语言中都知道:不要重复自己,不惜一切代价。在这种情况下,通过使用r中的for循环,您可以自动化重复部分:

对于(C中的年份(2010201120122013201412015))打印(粘贴(“年份是”,年)}“2010年”“2011年”“2012年”“2013年”“2014年”“2015年”

了解for循环中发生了什么的最佳方法,是这样读的:“每个按顺序排列C(2010201120122013201412015)执行代码块打印(粘贴(“年份是”,年)“。一旦for循环在向量中执行了每年的代码块,循环停止并转到循环块后的第一条指令。

看到了吗?通过使用for循环,您只需要写下一次代码块(而不是六次)。然后for循环为每个提供的值(我们提供的不同年份)运行一次语句,并设置变量(在这种情况下)到那个值。您甚至可以更简化代码:C(2010201120122013201412015)也可以写为2010:2015;这将创建完全相同的序列:

用于(2010年:2015年)打印(粘贴(“年份是”,年)}“2010年”“2011年”“2012年”“2013年”“2014年”“2015年”

作为R中for循环的最后一个说明:在本例中,我们使用了变量但实际上,这里可以使用任何变量。例如,您可以使用,for循环中常用的变量,表示索引:

用于(2010:2015中的i)打印(粘贴(“年份是”,i))“2010年”“2011年”“2012年”“2013年”“2014年”“2015年”

这将产生完全相同的输出。所以你可以随意命名变量,但如果你用有意义的名字,就更容易理解了。

使用下一个

让我们看一个更为数学的例子。假设您需要打印所有介于1和10之间的不均匀数字,但不应打印偶数。在这种情况下,您的循环将如下所示:

为了(我在1:10)如果(!I%%2)下一页打印(I)一万三千五百七十九

注意下一个语句的介绍。让我们一起探讨这个循环中的语句含义:

什么时候?在1到10之间,我们进入循环,如果不是,循环停止。如果我们进入循环,我们需要检查是不均匀的。如果值当除以2时,余数为零(这就是为什么我们使用模运算数%)。我们不输入if语句,执行打印功能并循环返回。如果余数不是零,if语句的计算结果为true,我们输入条件。现在我们看到了下一个导致循环返回到我在1:10从而忽略以下指令的条件(因此打印(一)

闭幕词

在这个简短的教程中,您已经熟悉了R中的for循环。一般来说,R中应该避免使用循环,在你的技能集中掌握这些知识仍然是很有价值的。它有助于你理解基本原则,当原型化时,一个循环解决方案很容易编码和读取。如果你想了解更多关于循环的知识,你可以随时检查这个R教程.

留下评论作者,请关注他们博客上的链接和评论: 数据科学+.

188bet appR博客提供 每日电子邮件更新金宝搏网址 R新闻与 教程关于以下主题: 数据科学大数据, r作业,可视化(可视化) GGPROTT2箱形图地图动画)程序设计(程序) 演播室斯威夫特乳胶SQL日食吉特哈多普刮网)统计 回归主成分分析时间序列交易还有更多…



如果你走这么远,为什么不 订阅更新 从站点?选择您的口味: 电子邮件推特1188bet app,或 脸谱网

注释已关闭。

搜索R-Blo188bet appggers


赞助商

千万不要错过更新!
订阅R-Bloggers188bet app接收
最新R帖子的电子邮件。
(您将不再看到此消息。)

单击此处关闭(此弹出窗口将不再出现)