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

lapply() применительно к датафрейму

Что если вместо списка у вас есть датафрейм с доходностями акций — можно ли всё равно использовать lapply()? Да! И это может удивить: датафреймы в R на самом деле являются списками «под капотом», поэтому вызов lapply() применит функцию к каждому столбцу датафрейма.

df
  a b
1 1 4
2 2 6

class(df)
[1] "data.frame"

lapply(df, FUN = sum)
$a
[1] 3

$b
[1] 10

lapply() просуммировал каждый столбец датафрейма, при этом сохранив стандартное поведение — результат всегда возвращается в виде списка. Для выполнения упражнения подготовлен датафрейм stock_return с дневными доходностями акций в виде десятичных дробей.

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

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

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

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

  • Выведите stock_return, чтобы ознакомиться со структурой датафрейма.
  • Используйте lapply(), чтобы вычислить среднее значение (mean) по каждому столбцу.
  • Создайте функцию для расчёта коэффициента Шарпа: она должна вычислить среднее доходностей, вычесть безрисковую ставку (.03%) и разделить результат на стандартное отклонение доходностей.
  • Используйте lapply(), чтобы рассчитать коэффициент Шарпа для каждого столбца.

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

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

# Print stock_return
___

# lapply to get the average returns
___

# Sharpe ratio
sharpe <- function(returns) {
    (___ - .0003) / ___
}

# lapply to get the sharpe ratio
___
Редактировать и запускать код