我正在編寫圍繞rBayesianOptimization
和caret
R包的包裝函數。下面描述的問題是主包裝函數內部步驟的一部分。我需要將特定模型的超參數(以下代表input
)傳遞給將在高斯過程模型中採樣的函數。超參數當前存儲在一個字符向量中。R函數使用字符向量動態生成另一個R函數
有沒有辦法使用字符向量在R中動態生成函數?我需要一個實際上創建另一個函數的函數。例如,
# start with this...
input <- c("a","b")
# ...and an intermediate function generates this
test_function <- function(a=a,b=b) {
d <- data.frame(a=a,b=b)
}
此外,解決方案需要能夠處理各種長度和內容的輸入。所以像這樣的東西也應該工作,
# start with this...
input <- c("c","d","e","f")
# ...and an intermediate function generates this
test_function <- function(c=c,d=d,e=e,f=f) {
d <- data.frame(c=c,d=d,e=e,f=f)
}
這是一個玩具的例子,但它足以回答我的問題。
這是完美的。我更新了我的原始問題以澄清 –