应用函数族(函数)
*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 |
请参阅示例以了解如何使用这些函数。