当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R mapply 将函数应用于多个列表或向量参数


R语言 mapply 位于 base 包(package)。

说明

mapplysapply 的多元版本。 mapplyFUN 应用于每个 ... 参数的第一个元素、第二个元素、第三个元素,依此类推。如有必要,参数将被回收。

.mapply()mapply() 的 bare-bones 版本,例如用于其他函数。

用法

mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE,
       USE.NAMES = TRUE)
.mapply(FUN, dots, MoreArgs)

参数

FUN

要应用的函数,通过 match.fun 找到。

...

向量化的参数将被回收到公共长度(如果其中之一是零)。另请参阅“详细信息”。

dots

要向量化的参数的listpairlist,请参阅上面的...

MoreArgs

FUN 的其他参数列表。

SIMPLIFY

逻辑或字符串;尝试将结果简化为向量、矩阵或更高维数组;请参阅 sapplysimplify 参数。

USE.NAMES

逻辑性;使用第一个 ... 参数的名称,或者如果它是未命名的字符向量,则使用该向量作为名称。

细节

mapply 调用 FUN 获取 ... 的值(重新循环到最长的长度,除非任何长度为零,其中循环到零长度将返回 list() ),后跟 MoreArgs 中给出的参数。如果命名了...MoreArgs,则调用中的参数将被命名。

对于 ... 中的参数(或 dots 中的组件),将在适用的情况下使用类特定子集(例如 [ )和 length 方法。

listSIMPLIFY = TRUE 为向量、数组或列表。

例子

mapply(rep, 1:4, 4:1)

mapply(rep, times = 1:4, x = 4:1)

mapply(rep, times = 1:4, MoreArgs = list(x = 42))

mapply(function(x, y) seq_len(x) + y,
       c(a =  1, b = 2, c = 3),  # names from first
       c(A = 10, B = 0, C = -10))

word <- function(C, k) paste(rep.int(C, k), collapse = "")
## names from the first, too:
utils::str(L <- mapply(word, LETTERS[1:6], 6:1, SIMPLIFY = FALSE))

mapply(word, "A", integer()) # gave Error, now list()

也可以看看

sapply ,之后对 mapply() 进行建模。

outer ,它将向量化函数应用于两个参数的所有组合。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Apply a Function to Multiple List or Vector Arguments。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。