假设我有一个函数列表和一个参数值向量:
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循环,有没有办法做到这一点?
答案 0 :(得分:3)
要同时迭代functions
和paramVector
个对象,请使用Map。例如
Map(function(f,p) f(p), functions, paramVector)
请注意Map()
始终返回一个列表。您还可以使用mapply()
来尝试简化向量
mapply(function(f,p) f(p), functions, paramVector)