匿名函数

顾名思义,匿名函数未分配名称。当函数是较大操作的一部分时,这可能很有用,但本身并不占用太多空间。匿名函数的一个常见用例是在*apply 系列 Base 函数中。

计算 data.frame 中每列的均方根:

df <- data.frame(first=5:9, second=(0:4)^2, third=-1:3)

apply(df, 2, function(x) { sqrt(sum(x^2)) })
    first    second     third 
15.968719 18.814888  3.872983 

为矩阵中的每一行创建一个步长 1 的序列,从最小值到最大值。

x <- sample(1:6, 12, replace=TRUE)
mat <- matrix(x, nrow=3)

apply(mat, 1, function(x) { seq(min(x), max(x)) })

匿名函数也可以独立存在:

(function() { 1 })()
[1] 1

相当于

f <- function() { 1 })
f()
[1] 1