开始使用免费开始使用

遍历数据框的行

假设您想找出 Apple 股价高于 117 的日期。如果超过该值,您希望打印当前的日期和股价。若您有一个包含 dateapple 价格列的 stock 数据框,能否通过遍历数据框的每一行来完成这个任务?当然可以!

在动手之前,请注意,您可以使用 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 语句、向量取子集、条件判断以及循环。恭喜您学到了这么多!

stocks 数据框已为您准备好。

本练习是课程的一部分

R 金融中级

查看课程

练习说明

  • 在 for 循环中填空,使下列要求成立:
    • price 应存放该次迭代的价格;
    • date 应存放该次迭代的日期;
    • 这一次,您想判断 apple 是否高于 116
    • 如果高于,打印该 dateprice
    • 如果低于 116,打印该 date,并打印这不是重要的一天!

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Loop over stock rows
for (row in 1:___) {
    price <- stock[___, "___"]
    date  <- stock[___, "___"]

    if(___ > ___) {
        print(paste("On", ___, 
                    "the stock price was", ___))
    } else {
        print(paste("The date:", ___, 
                    "is not an important day!"))
    }
}
编辑并运行代码