если вы используете purrr
/ tidyverse
, вы можете использовать purrr::invoke
.
library(purrr)
invoke(pmin,mylist,na.rm=TRUE)
# [,1] [,2]
# [1,] -0.3053884 -1.3770596
# [2,] 0.9189774 -0.4149946
# [3,] -0.1027877 -0.3942900
# [4,] -0.6212406 -1.4707524
# [5,] -2.2146999 -0.4781501
Это в основном do.call
с аргументом ...
, а его исходный код более или менее @ ответ Акруна:
function (.f, .x = NULL, ..., .env = NULL)
{
.env <- .env %||% parent.frame()
args <- c(as.list(.x), list(...))
do.call(.f, args, envir = .env)
}
purrr::partial
также интересно:
pmin2 <- partial(pmin,na.rm=TRUE)
do.call(pmin2,mylist)
# [,1] [,2]
# [1,] -0.3053884 -1.3770596
# [2,] 0.9189774 -0.4149946
# [3,] -0.1027877 -0.3942900
# [4,] -0.6212406 -1.4707524
# [5,] -2.2146999 -0.4781501