应用函数族(函数)
*apply 系列中的一个函数是 for 循环的抽象。与 for 循环相比,*apply 函数具有以下优点:
- 需要更少的代码来编写。
- 没有迭代计数器。
- 不使用临时变量来存储中间结果。
然而,for 循环更通用,可以为我们提供更多控制,允许实现使用*apply 函数并不总是微不足道的复杂计算。
for 循环和*apply 函数之间的关系在 for 循环的文档中进行了解释。
*apply 家族的成员
*apply 系列函数包含几个相同原理的变体,这些变体主要基于它们返回的输出类型而不同。
| 功能 | 输入 | 输出 |
|---|---|---|
apply |
matrix,data.frame,或 array |
向量或矩阵(取决于返回的每个元素的长度) |
sapply |
矢量或 list |
向量或矩阵(取决于返回的每个元素的长度) |
lapply |
矢量或 list |
list |
vapply |
矢量或`列表 | 用户指定类的向量或矩阵(取决于返回的每个元素的长度) |
mapply |
多个向量,lists 或组合 |
list |
请参阅示例以了解如何使用这些函数。