簡體   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