开始使用免费开始使用

lapply 与匿名函数

自己编写函数并在 lapply() 中使用,已经很了不起了!但如果只用一次就专门定义一个函数,会不会有点"大材小用"?这就是为什么您可以在 R 中使用所谓的"匿名函数"。

之前,您已经学到,R 中的函数本身就是对象。这意味着它们并不会自动绑定到某个名字上。创建函数时,您可以用赋值运算符给它命名。不过,也完全可以不给函数起名。这就是匿名函数:

# 具名函数
triple <- function(x) { 3 * x }

# 实现相同逻辑的匿名函数
function(x) { 3 * x }

# 在 lapply() 中使用匿名函数
lapply(list(1,2,3), function(x) { 3 * x })

已为您定义好 split_low

本练习是课程的一部分

R 中级

查看课程

练习说明

  • 修改第一次调用的 lapply(),改用一个执行相同操作的匿名函数。
  • 以同样方式,将第二次调用的 lapply 改为使用 select_second() 的匿名版本。
  • 删除 select_first()select_second() 的定义,因为它们已不再需要。

交互式实操练习

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

# split_low has been created for you
split_low

# Transform: use anonymous function inside lapply
select_first <- function(x) {
  x[1]
}
names <- lapply(split_low, select_first)

# Transform: use anonymous function inside lapply
select_second <- function(x) {
  x[2]
}
years <- lapply(split_low, select_second)
编辑并运行代码