lapply() em um data frame
Se, em vez de uma lista, você tivesse um data frame com retornos de ações, ainda daria para usar lapply()? Sim! Surpreendentemente, data frames são, na verdade, listas por baixo dos panos, e uma chamada a lapply() aplicaria a função a cada coluna do data frame.
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() somou cada coluna do data frame, mas continua seguindo sua convenção de sempre retornar uma lista. Foi fornecido um data frame de retornos diários de ações em decimais chamado stock_return.
Este exercício faz parte do curso
R Intermediário para Finanças
Instruções do exercício
- Imprima
stock_returnpara ver o data frame. - Use
lapply()para obter a média (mean) de cada coluna. - Crie uma função para o índice de Sharpe. Ela deve pegar a média dos retornos, subtrair dela a taxa livre de risco (
.03%) e depois dividir pelo desvio padrão dos retornos. - Use
lapply()para calcular o índice de Sharpe de cada coluna.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___