遍历数据框的行
假设您想找出 Apple 股价高于 117 的日期。如果超过该值,您希望打印当前的日期和股价。若您有一个包含 date 和 apple 价格列的 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; - 如果高于,打印该
date和price; - 如果低于
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!"))
}
}