繁体   English   中英

R-如何使用向量给定的参数运行函数列表中的每个函数

[英]R - how do I run each function in a list of functions with parameters given by a vector

假设我有一个函数列表和一个参数值向量:

functions <- list(a = function(x) x *2, b = function(x) x*3, c = function(x) x * 4)
paramVector <- c(2, 2, 1)

现在,我需要以下功能,即使用相应的参数调用每个函数并将结果整理为向量:

result <- c()
for (idx in 1:length(functions)) {
    result[idx] <- functions[[idx]](paramVector[idx])
}
result

没有for循环,有没有办法做到这一点?

要同时遍历functionsparamVector对象,请使用Map。 例如

Map(function(f,p) f(p), functions, paramVector)

注意, Map()总是返回一个列表。 您还可以使用mapply()尝试将其简化为向量

mapply(function(f,p) f(p), functions, paramVector)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM