関数 があるとしますf<- function(x,y,z) { ... }
。定数を 1 つの引数に渡し、他の引数を変化させるにはどうすればよいでしょうか? 言い換えれば、私はこのようなことをしたいと思います:
output <- outer(x,y,f(x,y,z=2))
このコードは評価されませんが、これを行う方法はありますか?
関数 があるとしますf<- function(x,y,z) { ... }
。定数を 1 つの引数に渡し、他の引数を変化させるにはどうすればよいでしょうか? 言い換えれば、私はこのようなことをしたいと思います:
output <- outer(x,y,f(x,y,z=2))
このコードは評価されませんが、これを行う方法はありますか?
outer(x, y, f, z=2)
関数の後の引数は追加の引数です。 を参照...
してください?outer
。この構文は R では非常に一般的apply
です。たとえば、ファミリ全体が同じように機能します。
アップデート:
フォローアップの質問で何を達成したいのか正確にはわかりませんが、おそらくこのフォームの解決策を使用する必要があると思います.
outer(sigma_int, theta_int, function(s,t)
dmvnorm(y, rep(0, n), y_mat(n, lambda, t, s)))
sigma_int
これは、との値の組み合わせごとに分散行列を計算し、theta_int
その行列を使用して密度を定義し、 で定義されたポイントで評価しy
ます。関連する変数の型と次元がわからないため、テストできませんでした。
outer
(関数のapplyファミリーなどとともに)それらが呼び出す関数に追加の引数を渡します。ただし、これがサポートされていない場合(一例)を扱っている場合はoptim
、より一般的なカリー化のアプローチを使用できます。関数をカレーすることは、変数(の一部)が固定されているため、パラメーターが少ない新しい関数を作成することです。
library("functional")
output <- outer(x,y,Curry(f,z=2))