開始使用免費開始

逐列迴圈處理資料框

想像一下,你想找出 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!"))
    }
}
編輯並執行程式碼