Aan de slagGa gratis aan de slag

lapply() op een data frame

Als je in plaats van een lijst een data frame met aandelrendementen had, kun je dan nog steeds lapply() gebruiken? Ja! Misschien verrassend, maar data frames zijn onder de motorkap eigenlijk lijsten, en een lapply()-aanroep past de functie toe op elke kolom van het 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() heeft elke kolom in het data frame opgeteld, maar houdt zich nog steeds aan de conventie om altijd een lijst terug te geven. Er is een data frame met dagelijkse aandelrendementen als decimalen beschikbaar met de naam stock_return.

Deze oefening maakt deel uit van de cursus

R voor finance voor gevorderden

Cursus bekijken

Oefeninstructies

  • Print stock_return om het data frame te bekijken.
  • Gebruik lapply() om het gemiddelde (mean) van elke kolom te krijgen.
  • Maak een functie voor de sharpe ratio. Die moet het gemiddelde van de rendementen nemen, daar het risicovrije rendement (.03%) van aftrekken en vervolgens delen door de standaarddeviatie van de rendementen.
  • Gebruik lapply() om de sharpe ratio van elke kolom te berekenen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Print stock_return
___

# lapply to get the average returns
___

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

# lapply to get the sharpe ratio
___
Code bewerken en uitvoeren