IniziaInizia gratis

lapply() su un data frame

Se, invece di una lista, avessi un data frame di rendimenti azionari, potresti comunque usare lapply()? Sì! Forse in modo sorprendente, i data frame sono in realtà liste “sotto il cofano”, e una chiamata a lapply() applicherebbe la funzione a ogni colonna del 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() ha sommato ogni colonna del data frame, ma mantiene comunque la sua convenzione di restituire sempre una lista. Ti è stato fornito un data frame di rendimenti azionari giornalieri in decimali chiamato stock_return.

Questo esercizio fa parte del corso

R intermedio per la finanza

Visualizza il corso

Istruzioni dell'esercizio

  • Stampa stock_return per vedere il data frame.
  • Usa lapply() per ottenere la media (mean) di ogni colonna.
  • Crea una funzione per lo sharpe ratio. Dovrebbe prendere la media dei rendimenti, sottrarre da essa il tasso privo di rischio (.03%), e poi dividere per la deviazione standard dei rendimenti.
  • Usa lapply() per calcolare lo sharpe ratio di ogni colonna.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Print stock_return
___

# lapply to get the average returns
___

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

# lapply to get the sharpe ratio
___
Modifica ed esegui il codice