本文概述
如果你想参加我们的金融中级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语句应打印当前列和行的名称, 并打印它们的相关性。
如果你想从本课程中学习更多信息, 请点击这里。
评论前必须登录!
注册