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)