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 循环的方法?
要同时遍历 functions
和 paramVector
对象,请使用 Map。例如
Map(function(f,p) f(p), functions, paramVector)
请注意 Map()
总是 returns 一个列表。您还可以使用 mapply()
来尝试简化为向量
mapply(function(f,p) f(p), functions, paramVector)
假设我有一个函数列表和一个参数值向量:
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 循环的方法?
要同时遍历 functions
和 paramVector
对象,请使用 Map。例如
Map(function(f,p) f(p), functions, paramVector)
请注意 Map()
总是 returns 一个列表。您还可以使用 mapply()
来尝试简化为向量
mapply(function(f,p) f(p), functions, paramVector)