Итерация по строкам фрейма данных
Представьте, что вас интересуют дни, когда цена акций 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!"))
}
}