使用内置函数
内置函数:lapply(),sapply()和 mapply()
R 带有内置函数,其中最着名的可能是应用功能系列。以下是一些最常见的应用函数的说明:
lapply()=将列表作为参数,并将指定的函数应用于列表。sapply()=与lapply()相同,但尝试将输出简化为矢量或矩阵。vapply()=sapply()的变体,其中必须指定输出对象的类型。
mapply()=喜欢lapply()但可以将多个向量作为输入传递给指定的函数。可以简化为sapply()。Map()是mapply()与SIMPLIFY = FALSE的别名。
lapply()
lapply() 可以用于两个不同的迭代:
lapply(variable, FUN)lapply(seq_along(variable), FUN)
# Two ways of finding the mean of x
set.seed(1)
df <- data.frame(x = rnorm(25), y = rnorm(25))
lapply(df, mean)
lapply(seq_along(df), function(x) mean(df[[x]))
sapply()
sapply() 将尝试将其输出解析为向量或矩阵。
# Two examples to show the different outputs of sapply()
sapply(letters, print) ## produces a vector
x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE))
sapply(x, quantile) ## produces a matrix
mapply()
mapply() 很像 lapply(),除了它可以将多个向量作为输入(因此 m 为多变量)。
mapply(sum, 1:5, 10:6, 3) # 3 will be "recycled" by mapply