Спрощення не вдалося
Для інтерактивної роботи sapply() чудово підходить. Вона здогадується про тип вихідних даних, щоб спростити результат, і зазвичай це працює добре. Однак sapply() небезпечно використовувати під час написання функцій. Якщо sapply() не може спростити ваш результат, вона за замовчуванням повертає список, так само як lapply(). Це може бути ризиковано й ламати ваші власні функції, якщо ви розраховували, що sapply() поверне спрощений вектор.
Розгляньмо вправу з використанням списку, що містить інформацію про біржовий обвал 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()
___