个性化阅读
专注于IT技术分析

R中的for循环用法

本文概述

如果你想参加我们的金融中级R课程, 请点击这里。

循环矢量

当你知道要重复几次操作时, for循环是个不错的选择。 for循环的想法是, 你逐步执行一个序列, 一次执行一个序列, 并在此过程的每个步骤中执行一个动作。该序列通常是数字的向量(例如从1:10开始的序列), 但也可以是没有任何顺序的数字, 例如c(2, 5, 4, 4, 6), 甚至不是字符序列!

for (value in sequence) {
    code
}

换句话说, “对于我序列中的每个值, 运行此代码。”例如, “对于数据框的每一行, 打印列1”, 或”对于句子中的每个单词, 检查该单词是否为srcmini”。

让我们尝试一个例子!首先, 你将创建一个循环, 以1到10的顺序打印出值。然后, 你将修改该循环以将1到10的值相加, 然后在每次迭代时, 将序列中的下一个值添加到流动的总和。

使用说明

已为你创建了一个向量seq。使用seq作为序列填充for循环。在每次迭代期间打印出值。已为你创建了可变总和。使用循环对seq中的数字求和。每次迭代时, 应将值加到sum上, 然后打印出sum。

如果这有意义, 请继续进行下一个练习!如果没有, 这是一个概述视频。

R中For循环的概述视频

遍历数据帧行

想象一下, 你对Apple的股价升至117以上的日子感兴趣。如果股价超过该值, 则要打印出当前日期和股价。如果你有一个带有日期和苹果价格列的股票数据框, 是否可以在数据框的行上循环以完成此操作?你当然可以!

在执行此操作之前, 请注意, 你可以使用nrow(stock)获得数据框中的行数。然后, 你可以创建一个序列以从1:nrow(stock)循环。

for (row in 1:nrow(stock)) {
    price <- stock[row, "apple"]
    date  <- stock[row, "date"]

    if(price > 117) {
        print(paste("On", date, "the stock price was", price))
    }
}
[1] "On 2016-12-21 the stock price was 117.06"
[1] "On 2016-12-27 the stock price was 117.26"

到目前为止, 我们结合了许多知识。 if语句, 子集向量, 条件和循环!恭喜你学到了很多东西!

使用说明

库存在你的工作区中。

填写for循环中的空白以使以下内容成立:

  • 价格应该保持迭代的价格
  • 日期应保留迭代的日期
  • 这次, 你想知道苹果是否高于116。
  • 如果是这样, 请打印日期和价格。
  • 如果低于116, 请打印日期并打印那不是重要的一天!

遍历矩阵元素

到目前为止, 你已经遍历了1维数据类型。如果要遍历矩阵中的元素(列和行), 则必须使用嵌套循环。你将使用此想法打印出三只股票之间的相关性。

考虑这一点的最简单方法是, 你将从第1行开始, 然后向右移动, 依次单击col1, col2, …, 直到row1的最后一列。然后, 你移至第2行并重复该过程。

my_matrix
     [, 1]   [, 2]  
[1, ] "r1c1" "r1c2"
[2, ] "r2c1" "r2c2"

# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
    for(col in 1:ncol(my_matrix)) {
        print(my_matrix[row, col])
    }
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"

使用说明

相关矩阵corr在你的工作空间中。

  • 打印corr以查看数据。
  • 填写嵌套的for循环!它应满足以下条件:
    • 外循环应在corr的行上方。
    • 内循环应在corr的cols上方。
    • print语句应打印当前列和行的名称, 并打印它们的相关性。

如果你想从本课程中学习更多信息, 请点击这里。

赞(0)
未经允许不得转载:srcmini » R中的for循环用法

评论 抢沙发

评论前必须登录!