ПочатиПочніть безкоштовно

Ітерування рядками датафрейму

Уявімо, що вас цікавлять дні, коли ціна акцій Apple піднімається вище 117. Якщо вона перевищує це значення, ви хочете вивести поточну дату й ціну акцій. Якщо у вас є датафрейм stock зі стовпцями date і ціною apple, чи можете ви пройтися циклом по рядках датафрейму, щоб це зробити? Авжеж!

Перш ніж почати, зауважте, що кількість рядків у вашому датафреймі можна отримати за допомогою 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!"))
    }
}
Редагувати та запускати код