スカラー値を非常にうまく受け入れる R の関数がありますが、ベクトルは受け入れません。
その上にラッパーを配置する方法はありますか?このラッパー関数はベクトルを受け入れることができますか?
関数自体には 5 つのパラメーターがあります。
私が試したこと
のすべての組み合わせを試してみましたがsapply、思いつく限り、控えめlapplyにmapply言っても、R はややあいまいなエラーを出し続けています。
スカラー値を非常にうまく受け入れる R の関数がありますが、ベクトルは受け入れません。
その上にラッパーを配置する方法はありますか?このラッパー関数はベクトルを受け入れることができますか?
関数自体には 5 つのパラメーターがあります。
私が試したこと
のすべての組み合わせを試してみましたがsapply、思いつく限り、控えめlapplyにmapply言っても、R はややあいまいなエラーを出し続けています。
とった。
元の関数呼び出しは次のとおりです。
result<-MyFunc(P=34,S=100,X=100,T=1)
方法 1
これがベクトル入力を受け入れるようにするmapplyには、関数呼び出しの前に追加し、最初の開き括弧(をコンマに変換するだけ,です:
result<-mapply(MyFunc,P=34,S=100,X=100,T=1)
方法 2
@Roland のおかげで、入力??Vectorizeして、関数をラップしてベクトルを受け入れることができる関数を見つけます。
MyFuncOnVector <- Vectorize(MyFunc)
result <- MyFuncOnVector(P=34,S=100,X=100,T=1)
舞台裏では、Vectorize が を呼び出してmapplyいます。