1. Learn
  2. /
  3. Courses
  4. /
  5. 金融のための中級R

Connected

Exercise

データフレームの行をループする

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 データフレームが用意されています。自由に使ってください。

Instructions

100 XP
  • 次を満たすように for ループ内の空欄を埋めてください。
    • price にはその反復の株価を入れます。
    • date にはその反復の日付を入れます。
    • 今回は、apple が 116 を上回るかを確認します。
    • 上回った場合は、date と price を出力します。
    • 116 未満だった場合は、date を出力し、重要な日ではなかったことも出力します。