始める無料で始める

データフレームに対する lapply()

リストではなく株式リターンのデータフレームがある場合でも、lapply() は使えるでしょうか? はい、使えます! 少し意外かもしれませんが、データフレームは内部的にはリストであり、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 を表示してください。
  • 各列の平均(mean)を得るために lapply() を使ってください。
  • シャープレシオ用の関数を作成してください。リターンの平均から無リスク金利(.03%)を差し引き、その値をリターンの標準偏差で割ります。
  • 各列のシャープレシオを計算するために lapply() を使ってください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Print stock_return
___

# lapply to get the average returns
___

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

# lapply to get the sharpe ratio
___
コードを編集して実行