Ітерування рядками датафрейму
Уявімо, що вас цікавлять дні, коли ціна акцій 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!"))
}
}