FUN の引数
適用したい関数に、調整したいオプション引数が含まれることはよくあります。小数点以下の桁数を指定できる percent_to_decimal() 関数を考えてみましょう。
percent_to_decimal(5.4, digits = 3)
[1] 0.054
lapply() の呼び出しでは、FUN 引数の後に名前付きのオプション引数を指定できます。これらは、適用する関数にそのまま渡されます。
my_list
$a
[1] 2.444 3.500
$b
[1] 1.100 2.678 3.450
lapply(my_list, FUN = percent_to_decimal, digits = 4)
$a
[1] 0.0244 0.0350
$b
[1] 0.0110 0.0268 0.0345
この演習では、シャープレシオ関数の機能を拡張して、リスクフリーレートを引数として受け取れるようにし、さらにそれを lapply() と一緒に使います。小数(decimal)で表した日次株式リターンのデータフレーム stock_return が用意されています。
この演習はコースの一部です
金融のための中級R
演習の手順
sharpeを拡張して、リスクフリーレートをオプション引数として入力できるようにしてください。デフォルトは.0003に設定します。lapply()をstock_returnに対して使い、リスクフリーレートが.0004のときのシャープレシオを求めてください。lapply()をstock_returnに対して使い、リスクフリーレートが.0009のときのシャープレシオを求めてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Extend sharpe() to allow optional argument
sharpe <- function(returns, rf = ___) {
(mean(returns) - ___) / sd(returns)
}
# First lapply()
___
# Second lapply()
___