НачатьНачать бесплатно

Когда упрощение невозможно

Для интерактивной работы sapply() — отличный выбор. Функция сама определяет тип вывода и упрощает результат, и в большинстве случаев это удобно. Однако использовать sapply() внутри пользовательских функций небезопасно. Если sapply() не удаётся упростить результат, она возвращает список — как и lapply(). Это может нарушить работу пользовательских функций, если они написаны в расчёте на упрощённый вектор.

Рассмотрим упражнение, в котором используется список с информацией о финансовом кризисе 2008 года.

Это упражнение является частью курса

Средний уровень R для финансов

Посмотреть курс

Инструкции к упражнению

Список market_crash уже создан для вас.

  • Используйте sapply(), чтобы получить class() каждого элемента в market_crash.


Также создан новый список market_crash2. Отличие — в способе создания даты!

  • Используйте lapply(), чтобы получить class() каждого элемента в market_crash2.
  • Используйте sapply(), чтобы получить class() каждого элемента в market_crash2.


Поле date в market_crash2 имеет несколько классов. Почему sapply() не смогла упростить результат?

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Market crash with as.Date()
market_crash <- list(dow_jones_drop = 777.68, 
                     date = as.Date("2008-09-28"))
                     
# Find the classes with sapply()
___

# Market crash with as.POSIXct()
market_crash2 <- list(dow_jones_drop = 777.68, 
                      date = as.POSIXct("2008-09-28"))

# Find the classes with lapply()
___

# Find the classes with sapply()
___
Редактировать и запускать код