私は関数出力をプロファイリングするプロジェクトに取り組んでいるので、R の引数として関数を渡す必要があります。明確にするために、さまざまな数のモデルがあり、モデルのセットアップに関する支援を求めていません。モデル関数名をスコアリング関数に追加します。
これは直接呼び出しでは機能しますが、モジュールを構築するためにより一般的なものにしたいと考えています。以下に簡単な例を示します。
#create a test function:
model1 = function(y,X){
fit = lm(y~X)
output = data.frame(resid = fit$residuals)
}
#score function:
score = function(y,X,model){
y= as.matrix(y)
X = as.matrix(X)
fitModel = model(y,X)
yhat = y - fitModel$residual
output = data.frame(yhat=yhat)
}
有効な y および X マットを使用してこのコードを呼び出すことができます
df <- data.frame(x=rnorm(5),y=runif(5))
scoreModel1 = score(df$y,df$x,model1)
しかし、私が探しているのは、すべてのモデルをリストし、ループして、スコア関数を一般的な方法で呼び出す方法です。例えば:
models = c("model1")
scoreModel1 = score(df$y,df$x,models[1])
上記のコードで発生するエラーは
Error in score(y, X, model) :
could not find function "model"
私は as.function() で遊んで、引数をリストおよびリストから外しましたが、何も機能しません。たとえば、次の引数はすべて上記と同じエラーを表示します
models = c(model1)
models = list(model1)
models = list("model1")
よろしくお願いいたします。