當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。