1. Learn
  2. /
  3. Курси
  4. /
  5. Середній рівень R для фінансів

Connected

Вправа

vapply() проти sapply()

У попередньому прикладі sapply() не зміг спростити результат, оскільки елемент date у market_crash2 мав два класи (POSIXct і POSIXt). Зверніть увагу, що помилки при цьому не було! Якби ваша функція очікувала, що sapply() поверне спрощений вектор, це могло б збити з пантелику.

Щоб це врахувати, існує більш сувора функція з родини apply — vapply(). Вона містить додатковий аргумент FUN.VALUE, у якому ви вказуєте тип і довжину вихідних даних, які мають повертатися щоразу при виклику вашої функції.

Якщо ви очікуєте, що значення, яке повертає class(), — це символьний вектор довжини 1, ви можете вказати це через vapply():

vapply(market_crash, class, FUN.VALUE = character(1))
dow_jones_drop           date 
     "numeric"         "Date"

Інші приклади FUN.VALUE: numeric(2) або logical(1). market_crash2 знову визначено для вас.

Інструкції

100 XP
  • Знову використайте sapply(), щоб знайти class() елементів market_crash2. Зверніть увагу, що він повертає список, а не помилку.
  • Застосуйте vapply() до market_crash2, щоб визначити class(). Укажіть FUN.VALUE = character(1). Має коректно завершитися помилкою.