开始使用免费开始使用

在数据框上使用 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 以查看数据框。
  • 使用 lapply() 计算每一列的平均值(mean)。
  • 编写一个用于计算「夏普比率」的函数。应先取收益的平均值,减去无风险利率(.03%),再除以收益的标准差。
  • 使用 lapply() 计算每一列的夏普比率。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Print stock_return
___

# lapply to get the average returns
___

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

# lapply to get the sharpe ratio
___
编辑并运行代码