2015-02-24 48 views
2

假設我有一個函數列表和參數值的向量給定參數:的R - 我怎麼運行的每個功能的函數列表與向量

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循環的情況下執行此操作?

回答

3

要同時遍歷functionsparamVector對象,請使用Map。例如

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

請注意,Map()總是返回一個列表。你也可以使用mapply()這將嘗試簡化爲一個向量

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

'mapply'可能更合適,因爲他們想要結果作爲一個向量。 – thelatemail 2015-02-24 05:23:21

相關問題